全く別のコードで変更されたObservableListを観察したい。私の問題は、リストが変更されたときにListChangeListenerを呼び出すだけでなく、リストに既に要素が含まれている可能性があるリスナーをアタッチするときだけでなく、初期状態をリスナーに渡す必要があるということです。ListChangeListenerの初期状態を与える
もちろん、私は、次の操作を行うことができます:
list.addListener(this::listenerMethod);
listenerMethod(fakeChange);
しかし、このアプローチを持つ2回のメソッド呼び出しの間に追加された任意の項目は理想的ではありませんこれは、二回処理されます。
順序が逆になった場合:
listenerMethod(fakeChange);
list.addListener(this::listenerMethod);
第2のアプローチは、完全に2回のメソッド呼び出しの間に追加された要素を無視することになります。
このような状況を処理するにはどうすればよいでしょうか?
あなたのリスナーが起動前要素を初めて処理するときに気付くべきことは、 – efekctive
@efekctive Okです。だから最初は解決策でしたが、しかし、あなたのソリューションは、リストがある時点で変更された場合にのみ機能しますが、これは保証されていません。リストは永遠に初期の状態にとどまることができます。 –
変更されていない場合、リスナーは呼び出されません。疑問点 – efekctive