我想知道为什么我会在以下代码中获得NPE:
@Override
public void updateItem(String item, boolean empty) {
if(empty){
super.updateItem(item, empty);
return;
}
MyTableRow currentRow = (MyTableRow) getTableRow().getItem();
currentRow.stringProperty(); // here I get NPE
}
代码段来自自定义TableCell,其中updateItem
被覆盖。
在注释行中,我得到NPE,而item
不为空,并且空为false
。对我来说这意味着有一行,所以getTableRow().getItem()
不应该为空。这是真的,是一个解决方案(或一个不必要的解决方法?)在我得到项目的引用后进行nullcheck,但我认为这是不必要的。我错过了这是预期的结果吗?