私はMyApplicationClassを持っています。私はMainActivityに変数ArrayListを作成し、それにMyApplciationClassの変数を割り当てます。最後に、ローカル変数にremoveを呼び出して値を削除しますが、値はMyApplicationClass localvariableとそれが可能なのは、MyApplicationClassからリストを取得するだけなので、何もしませんでしたか?ここで なぜ "ArrayList.remove"はローカル変数とmyApplicationClassの両方を削除しますか?
は私のコードです:MyApplicationClass:
private ArrayList<String> text = new ArrayList<>();
public ArrayList<String> getText() {
return text;
}
public void addTest(String input) {
text.add(input);
}
MainActivity:
//When click on a button:
final MyApplicationClass myApplicationClass = (MyApplicationClass) getApplicationContext();
//I add some example values
myApplicationClass.addTest("1");
myApplicationClass.addTest("2");
//Here I retrieve the variable in MyApplicationClass to put in into a local variable:
ArrayList<String> testlocal = myApplicationClass.getText();
//And here I remove a value from the localvariable testlocal:
test.remove(1);
しかし、私はデバッグし、変数を見たとき、私は値が正しくtestlocalで削除されていることがわかりますでも文中にMyApplicationClassがありますのテキストローカルから値を削除してください。
ありがとうございます。
なお、A(この場合) StringはJavaでは不変なので、ディープコピーは必要ありません。 –
@Tobias Weimer私は要素のタイプを見ていないと告白します。フィードバックいただきありがとうございます。私は更新しました。 – davidxxx