我有一个模型类ModelParent
,它有一个可观察的列表ObservableList<ModelChild>
,其中ModelChild
是另一个模型类,它有自己的属性。
class ModelParent {
private final ObservableList<ModelChild> children = FXCollections.observableArrayList();
public ObservableList<ModelChild> getChildren() {
return children;
}
// More properties...
}
在某些情况下,我希望将一个提取器应用于列表 - 也就是说,当列表更改时,或者当列表的某个成员发生更改时,可以通知。问题是,在不同的场合我会想要观看不同的属性,有时我根本不关心它们。
我知道我可以在创建时将ObservableList
应用于ObservableList
,但是可以在现有列表中添加提取器吗?或者也许创建一个由原始支持的可观察列表(两种方式都有变化),但是还有一个额外的提取器?
我看到了this,但它明确表示直接对支持列表进行的更改不会触发更改事件。问题是同一个模型对象实例可能由不关心这个新提取器的不同对象持有,并且会愉快地添加或删除原始{{1}}上的项目。
Java 8中是否存在这样的东西?或者有一种简单的方法可以自己实现它吗?