したがって、擬似コードでは次のようになります。
class Example {
private ExampleState state;
private List<ExampleState> states;
public Example() {
state = new ExampleState(parameters);
CustomAdapter = new CustomAdapter(context, state);
}
public someMethod() {
state = states.get(states.size() - 1);
cellAdapter.notifyDataSetChanged();
}
}
class CustomAdapter {
protected ExampleState state; // that's where data is
public CustomAdapter(Context context, ExampleState state) {
this.state = state;
}
}
someMethod の後、CustomAdapter 状態フィールドは同じままです。そういえばまずは Example コンストラクタでオブジェクト ExampleState を作成しています。次に、それへの参照をアダプターに渡します。次に、オブジェクトを別のオブジェクトを参照するように変更しています。
そのため、someMethod の前に、Example と CustomAdapter のフィールド「state」の ID は同じでした。その後、Example のものは新しいもので、CustomAdapter のものは古いものです。参照が更新されないのはなぜですか?