是否可以创建只读的可观察列表?

krs*_*rsi 4 javafx observablelist

我有可观察的清单ObservableList<Integer> list = FXCollections.observableArrayList().

在getter方法中,list我想返回只读的可观察列表,如:

public ObservableList<Integer> getReadOnlyList() {
     return readOnlyObservableList(list);
}
Run Code Online (Sandbox Code Playgroud)

然后听只读列表

getReadOnlyList().addListener(listChangeListener);
Run Code Online (Sandbox Code Playgroud)

所以基本上我想返回与原始列表同步的ObservableList列表,以便用户可以注册ListChangeListener和观察更改事件,但同时阻止用户更改原始列表.

tom*_*tom 12

ObservableList<Integer> list = FXCollections.observableArrayList();
ObservableList<Integer> roList = FXCollections.unmodifiableObservableList(list);

public ObservableList<Integer> getReadOnlyList() {
  return roList;
}
Run Code Online (Sandbox Code Playgroud)