-4

返回局部变量作为参数

public String savedData(String Data, String m, String r, String s){
        String data = "asdfasdf";

        return Data;

    }

我想返回局部变量data..我把data.this = data,它不起作用..嗯,这里有什么问题?

4

2 回答 2

1

在这种情况下,您不能在参数中返回值。String不可变的,您只能更改引用。您不能更改传入的对象。

可以这样做:

class StringHolder {
   public String value;
}

StringHolder s = new StringHolder;
s.value = "x";

savedData(s);

savedData更改传递的对象:

public String savedData(StringHolder data,....) {
   data.value = "new x";

不过,我真的会这样做(没有明确表示)。这不是特别地道,也许有点出乎意料。我认为你最好通过return. 这是一个很好的做法 - 副作用使调试等方面的生活变得复杂,并使多线程更有问题(因为你的状态正在改变)

于 2012-10-19T09:00:39.970 回答
0
public String savedData(String Data, String m, String r, String s){
    String data = "asdfasdf";


    return data; // returning data not Data.

}

你在说上面的场景吗???。

于 2012-10-19T08:59:01.150 回答