public class TestCHUANZHI {
public static void main(String args[]){
TestCHUANZHI Test = new TestCHUANZHI();
String[] textSZ = new String[3];
textSZ[0] = "1111111111111";
textSZ[1] = "2222222222222";
textSZ[2] = "3333333333333";
for(String s: textSZ){
Test.change(s);
System.out.println(s);

}

}

public void change(String str){
str = "88";
return str;
}
}上面的代码是 我在一个方法中传入了一个字符串,没有放回值,那么我如果在函数中改变后 在函数外面的也能随之改变。 我在方法中想改变传入过来 String对象的值
 但是JAVA 函数是传值的
  那么我在函数中如何做到呢?
 谢谢。

解决方案 »

  1.   

    克隆可以满足你的要求
    你看看 clone()这个方法就知道了
      

  2.   

    你可以传递一个数组public void change(String[] str){
    str[0] = "88";
    return;
    }或者设置传递一个对象,java中的基本穿基本类型是不回改变原来的值得,基本类型包括int ,short,boolean,long,byte,double,float,char , 包装类String,Double...等他们的传递都是按照值传递的
      

  3.   

    为什么用Iteratorjava订立Iterator为一个接口public interface Iterator {
         Object next ();
    }这是一个标准,是别的集合类必须都遵循这个标准去开发他们的迭代器来便利集合对象元素,
    因为sun不知道以后都什么集合,也许你也写一个集合类,他是如果用next方法,
    他不能给你订立一套标准,你也不知道怎么去实现,应该怎么去遍历集合,这样就造成了,每个人迭代器都不一样,就不能达到统一的标准去迭代了,sun指定这个标准让你去实现,这样所有迭代器的标准都一样,就可以统一用一个对象来便利了
      

  4.   

    if(你只是想让其输出变化的话){for(String s: textSZ){
    s=Test.change(s);
    System.out.println(s);}}else if (你要是想让数组也发生变化的话){
    for(int i=0;i<3;i++){
    textSZ [i]=Test.change(textSZ [i]);
    System.out.println(textSZ [i]);}
    }else{ 不会了,}
      

  5.   

    哎 这都行??怎么都不看代码?public void change(String str){
    str = "88";
    return str;
    }void  最后 有 return str;  能行吗? 编译通过?
    这个问题我之前已经发过类似的帖子 你可以看一下http://topic.csdn.net/u/20100716/15/db8ffab6-cc0c-4f04-89c5-a2e49d7ece44.html里面有人回帖的时候讲得很清楚
      

  6.   

    可以通过传递一个数组来实现public void change(String[] str){
    str[0] = "88";
    return;
    }或者设置传递一个对象,java中的基本穿基本类型是不回改变原来的值得,基本类型包括int ,short,boolean,long,byte,double,float,char , 包装类String,Double...等他们的传递都是按照值传递的 
     
      

  7.   

    public class TestCHUANZHI {
    public static void main(String args[]){
    TestCHUANZHI Test = new TestCHUANZHI();
    String[] textSZ = new String[3];
    textSZ[0] = "1111111111111";
    textSZ[1] = "2222222222222";
    textSZ[2] = "3333333333333";
    for(String s: textSZ){
    s=Test.change(s);//赋值就可以了
    System.out.println(s);}}public void change(String str){
    str = "88";
    return str;
    }
    }
      

  8.   

    这个可以,不过要把“public void change(String str)”改成“public String change(String str)”。
      

  9.   

    JAVA的方法传递的是引用的copy,而不是引用。