说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

关于Java能否通过参数来返回数据的问题!!!

编辑:说三道四文库 发布时间:2018-08-19 09:25
HTML文档下载 WORD文档下载 PDF文档下载
VC中通过指针可以改变入口参数的数据值,
VB中可以通过ByRef(表示参数按地址传递)取得返回的参数值,
请问在Java有没有方法可以通过参数的方法来取得返回数据???
将对象穿进去了

基本数据类型int,char.....
好象就不好了
Java传进来的是指向对象的引用,你可以用引用修改对象从而返回数据。
java中参数都是引用的句柄。可以直接修改其中的值。很多情况下会引起副作用。
其中 String 传入时 java 完成了 clone,所以对于 String 类型的方法内外的对象是不同的。
假如要避免对象被修改,可以实现该类的 clone 方法拷贝构造一个新对象。
int test(int[] a,String[] b)
{
if(a!=null)
a[0]=222;
if(b!=null)
b[0]="adfsf";
return 234;
}
参数是String类型(不是数组)怎么办!!!
基本类型int,char,double等可以用它们的wrapper
做一个String数组,象上面那位写的。
我的目的是:
    需要将一个数千行的VC代码转换为Java代码,其中有一个方法,被调用了四百多回,我希望找到一个不修改调用接口的方法,也能实现通过参数得到返回值!如有方法,感激不尽!
将你的参数类型变成对象。
使用对象名作为参数呀,这等同于c中的传递地址。看下面的
class paremter()
{
  public int num;
  public String str;
  public ...//定义更多的要传递的参数
}

class test
{
  public static void modify(paremter out)
  {
    out.num++;
    out.str="Be updated!";
    //...
  }
  public static void main(String args[])
  {
     paremter par = new paremter();
     modify(par);
     System.out.println(par.num);
     //...
  }
}


参数就是String的话,有没有方法呢?
否则修改起来太麻烦,目前第一个VC代码中就至少有400多处调用,以后还要将整个项目全部转换为JAVA,希望能得到不需要改动参数类型的方法!
假如把 String 改为 StringBuffer 会不会太麻烦?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘