是否可以创建只读的可观察列表?
Is it possible to create read-only observable list?
我有可观察列表 ObservableList<Integer> list = FXCollections.observableArrayList()
。
在 list
的 getter 方法中,我想要 return 只读可观察列表,例如:
public ObservableList<Integer> getReadOnlyList() {
return readOnlyObservableList(list);
}
然后收听只读列表
getReadOnlyList().addListener(listChangeListener);
所以基本上我想return与原始列表同步的ObservableList列表,以便用户可以注册ListChangeListener
并观察更改事件,但同时防止用户更改原始列表列表。
我认为最好的方法是使用FXCollections.unmodifiableObservableList(list)方法:
public ObservableList<Integer> getReadOnlyList() {
return FXCollections.unmodifiableObservableList(list);
}
另见 JavaFX ReadOnlyListProperty not read only?
ObservableList<Integer> list = FXCollections.observableArrayList();
ObservableList<Integer> roList = FXCollections.unmodifiableObservableList(list);
public ObservableList<Integer> getReadOnlyList() {
return roList;
}
我有可观察列表 ObservableList<Integer> list = FXCollections.observableArrayList()
。
在 list
的 getter 方法中,我想要 return 只读可观察列表,例如:
public ObservableList<Integer> getReadOnlyList() {
return readOnlyObservableList(list);
}
然后收听只读列表
getReadOnlyList().addListener(listChangeListener);
所以基本上我想return与原始列表同步的ObservableList列表,以便用户可以注册ListChangeListener
并观察更改事件,但同时防止用户更改原始列表列表。
我认为最好的方法是使用FXCollections.unmodifiableObservableList(list)方法:
public ObservableList<Integer> getReadOnlyList() {
return FXCollections.unmodifiableObservableList(list);
}
另见 JavaFX ReadOnlyListProperty not read only?
ObservableList<Integer> list = FXCollections.observableArrayList();
ObservableList<Integer> roList = FXCollections.unmodifiableObservableList(list);
public ObservableList<Integer> getReadOnlyList() {
return roList;
}