パラメータとしてローカル変数を返す
public String savedData(String Data, String m, String r, String s){
String data = "asdfasdf";
return Data;
}
ローカル変数 data を返したい.. data.this = data を入れたが、うまくいかない.. うーん、ここで何が問題なの?
この場合、パラメーターで値を返すことはできません。不変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
。従うのは良い習慣です - 副作用はデバッグなどの点で人生を複雑にし、マルチスレッドをより問題にします(あなたの下で状態が変化しているため)
public String savedData(String Data, String m, String r, String s){
String data = "asdfasdf";
return data; // returning data not Data.
}
上記のシナリオについて話しているのですか???.