Javafx:TableCell getTableRow

时间:2017-07-27 08:44:17

标签: java generics javafx tablecell raw-types

我想知道为什么{1}} TableCell方法在Table单元格中没有Generic时,很明显返回类型与单元格相同&# 39; s通用定义。让我们举一个例子:

我有一个班级:

getTableRow()

首先,我必须将它投射到class MyCustomCell<S extends MyType, T> extends TableCell<S, T> { @Override protected void updateItem(T item, boolean empty) { super.updateItem(item, empty); if(empty){ setText(null); }else { S data = (S) getTableRow().getItem(); // do something with data. } } } ,并且有一个警告: 未经检查的强制转换:java.lang.Object。原因:&#39; getTableRow()&#39;有原始类型,因此getItem的结果被删除。但为什么?例如,在(S),这种方法很有效:

TreeTableCell

所以你不必将事件投射到public final TreeTableRow<S> getTreeTableRow() { return treeTableRow.get(); }。我正在研究一下,我发现了这个:https://bugs.openjdk.java.net/browse/JDK-8096461,但是这个链接和相应方法的javadoc都没有对我说什么。该错误的解决方案也被设置为无法修复,但我无法理解为什么,或者为什么这样开发,没有通用。你能解释一下我还是可以用它来理解它?

0 个答案:

没有答案