将局部变量作为参数返回
public String savedData(String Data, String m, String r, String s){
String data = "asdfasdf";
return Data;
}
我想返回局部变量,数据..我把data.this =数据,它不会工作..嗯这里有什么问题?
答案 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.
}
你在谈论上述情况吗?