为什么JavaFX TableView#setItems采用ObservableList <t>而不是ObservableList <! - ?延伸T - >?

时间:2018-01-27 20:07:39

标签: java list generics javafx tableview

我想知道为什么TableView<T>方法setItems没有ObservableList<? extends T>作为参数,但是ObservableList<T>

ObservableList<? extends T>转换为ObservableList<T>的最佳方法是什么?我可以将第一个列表中的所有元素添加到第二个,然后添加监听器来收听更改,但我想知道可能有更好的方法。

1 个答案:

答案 0 :(得分:0)

总结一下评论:

TableView<T>方法setItems不以ObservableList<? extends T>作为参数的原因,ObservableList<T>是因为您可以使用{{{{}}}将项目添加到列表中1}}

但是,如果你确定永远不会使用TableView.getItems().add(...)返回的列表写入列表,那么最高效的方法就是简单地将TableView.getItems()强制转换为原始类型({{ 1}})。