在编写代码时,我添加了以下代码:
nameComboBox.valueProperty().addListener(new ChangeListener<NameVO>() {
@Override
public void changed(
ObservableValue<? extends NameVO> observable,
NameVO oldValue, NameVO newValue) {
// TODO Auto-generated method stub
}
});
Eclipse向我显示
addListener
下的红线,并将鼠标移到该行上,我可以看到以下消息:The method addListener(ChangeListener<? super capture#6-of ?>) in the type ObservableValue<capture#6-of ?> is not applicable for the arguments (new ChangeListener<NameVO>(){})
为什么会这样呢?
[注意:我为剩余的ComboBox做了类似的事情,但是那边我没有得到这样的消息]
最佳答案
似乎期望使用ObservableValue<NameVO>
而不是ObservableValue<? extends NameVO>
。
首先,请查看您如何显式说明ChangeListener
的type参数:new ChangeListener<NameVO>{ .... }
您明确指出它是NameVO
,但是当您实际执行该方法时,您将其更改为? extends NameVO