假设有下面方法 
private void method1(String a, String b, String c) {
a = "123";
b = "234";
c = "345";
}String a = "", b = "", c = "";
method1(a, b, c)
调用method1后,a, b, c的值还是没变, 我现在希望能够在method1中改变a, b, c的值, 要怎么办呢?? 像C#里用ref一样.   大家一般是怎样解决这种情况的, 谢谢谢谢

解决方案 »

  1.   

    在Java中, 方法的参数永远都是按值传递(pass by value), 不会按引用传递.可以将a, b, c定义成成员变量, 在方法里直接修改其值, 如:public class ChangeValues {
      String a, b, c;
      private void change() {
        a = "123";
        b = "234";
        c = "345";
      }
    }
      

  2.   

    java里方法调用是不能使一个对象引用参数指向一个新对象的,
    好象只能通过a=mothed1(...)这样才行。
      

  3.   

    也可以使用StringBuffer, 或者重新设计一个类来存储String的值, 如:public class MyString {  private String value;  public MyString(String val) {
        this.value = val;
      }  public String getValue() {
        return this.value;
      }  public void setValue(String val) {
        this.value = val;
      }}