を並べ替え:アイテムの追加と削除ListChangeListener.Change:どのように適切に処理するように更新してのJavaDocからアイテム
ObservableList theList = ...;
theList.addListener(new ListChangeListener<Item>() {
public void onChanged(Change<tem> c) {
while (c.next()) {
if (c.wasPermutated()) {
for (int i = c.getFrom(); i < c.getTo(); ++i) {
//permutate
}
} else if (c.wasUpdated()) {
//update item
} else {
for (Item remitem : c.getRemoved()) {
remitem.remove(Outer.this);
}
for (Item additem : c.getAddedSubList()) {
additem.add(Outer.this);
}
}
}
}
});
}
は簡単ですが、何//update item
と// permutate
について?
どのアイテムがどの他のアイテムによって並べ替えられたかをどのように知ることができますか?
更新は正確に何を意味しますか?もう一度同じ項目をリストに追加するだけですか?
そして、何
for (Item remitem : c.getRemoved()) {
remitem.remove(Outer.this);
}
or (Item additem : c.getAddedSubList()) {
additem.add(Outer.this);
}
についてOuter.this
は何を意味するのでしょうか?
多くの説明に感謝します!アウターに関するもう1つの質問です。 コードは 'Outer.this.remove(remitem)'と 'Outer.this.add(additem)'ではないはずですか? – kerner1000
私の解釈では、より直感的なコードをお勧めします。おそらく考えは、周囲のクラス( 'Outer')が何らかのリスナーであり、コードが、追加され削除されたアイテムにリスナーを登録/登録解除しているということでしょう。ドキュメントに意図された内容が正確ではない。 –