我在尝试遍历JavaFX TableView的列时遇到了这个问题。我想调用每列的cellFactory,所以我做了这样的事情-

for (TableColumn<Model, ?> column : getTableView().getColumns()) {
    column.getCellFactory().call(column);
}


不幸的是,这不起作用,因为出现编译错误:


  不兼容的类型:javafx.scene.control.TableColumn 无法转换为javafx.scene.control.TableColumn


我该如何克服?我可以转换参数吗?引入显式类型参数?

列自然不是全部都是同一类型,我非常想避免不得不对每个列的类型进行硬编码,因为此代码应用于各种TableView

最佳答案

您可以删除generics参数并取消显示rawtypes警告

for (@SuppressWarnings("rawtypes") TableColumn column : getTableView().getColumns()) {
    column.getCellFactory().call(column); // now compiles
}

关于java - 如何解决Java通用通配符限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/35392063/

10-10 09:37