为什么JavaFX TableView#setItems采用ObservableList<T>而不是ObservableList<? 扩展 T>?



我想知道为什么TableView<T>方法setItems不以ObservableList<? extends T>为参数,而是ObservableList<T>

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

只是总结一下评论:

TableView<T>方法setItemsObservableList<? extends T>作为参数,但ObservableList<T>的原因是您可以使用TableView.getItems().add(...)将项目添加到列表中

但是,如果您确定永远不会使用返回的列表写入列表TableView.getItems()则性能最高的方法是简单地将ObservableList<? extends T>转换为原始类型(ObservableList<T>(。

最新更新