返回局部变量作为参数

时间:2012-10-19 08:57:04

标签: java reference

将局部变量作为参数返回

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

        return Data;

    }

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

2 个答案:

答案 0 :(得分: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返回新对象要好得多。遵循这样的好习惯 - 副作用会使调试等方面的生活变得复杂,并使多线程更成问题(因为你的状态正在发生变化)

答案 1 :(得分:0)

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


    return data; // returning data not Data.

}
你在谈论上述情况吗?