作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
此代码抛出 UnsupportedOperationException,正如我所期望的那样,因为它是只读的。
ListProperty<String> lp = new SimpleListProperty<String>();
ReadOnlyListWrapper<String> rolw = new ReadOnlyListWrapper<String>(lp);
ReadOnlyListProperty<String> rolp = rolw.getReadOnlyProperty();
rolp.add("element");
ObservableList<String> ol = FXCollections.observableArrayList();
ReadOnlyListWrapper<String> rolw = new ReadOnlyListWrapper<String>(ol);
ReadOnlyListProperty<String> rolp = rolw.getReadOnlyProperty();
rolp.add("element");
最佳答案
最初的期望是错误的 - 对于提供的示例。 UnsupportedOperationException 发生的原因不同,而不是因为正在“写入”“只读”列表。仍然可以有“只读”列表。我希望下面的答案有助于澄清。
答案需要分两部分来考虑。一:ListProperty 异常和二:只读列表。
1) ListProperty 示例失败,因为尚未为该属性分配列表。
这个简化的例子也会抛出异常。请注意,删除了任何“只读”方面:
ListProperty<String> lp = new SimpleListProperty<>();
lp.add("element");
ObservableList ol = FXCollections.observableArrayList();
ListProperty<String> lp = new SimpleListProperty<>();
lp.setValue(ol);
lp.add("element");
ObservableList<String> ol = FXCollections.observableArrayList();
ObservableList<String> uol = FXCollections.unmodifiableObservableList(ol);
uol.add("element");
ObservableList<String> ol1 = FXCollections.observableArrayList();
ObservableList<String> ol2 = FXCollections.observableArrayList();
ListProperty<String> lp = new SimpleListProperty<>(ol1);
lp.setValue(ol2);
关于JavaFX ReadOnlyListProperty 不是只读的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18595631/
此代码抛出 UnsupportedOperationException,正如我所期望的那样,因为它是只读的。 ListProperty lp = new SimpleListProperty(); R
我是一名优秀的程序员,十分优秀!