调用方法,我发现非常好的一段代码在这里:blogJavaFX的回调实现与拉姆达
我要实现它在我的应用程序。这篇博文是从2014年开始的,作者没有使用lambda。我试图自己做,以避免真正丑陋的匿名电话,但我无法弄清楚,如何做到这一点。有原代码:
tableColumn.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<ObservableList, String>, ObservableValue<String>>() {
@Override
public ObservableValue<String> call(TableColumn.CellDataFeatures<ObservableList, String> param) {
return new SimpleStringProperty((param.getValue().get(j).toString()));
}
});
和IntelliJ会自动将其转换为:
tableColumn.setCellValueFactory(param ->
new SimpleStringProperty((param.getValue().get(j).toString())));
但有一个错误:在 “参数”
Cannot resolve method getValue()
。我已经改变了这一点:
tableColumn.setCellValueFactory((TableColumn.CellDataFeatures<ObservableList, String> param) ->
new SimpleStringProperty((param.getValue().get(j).toString())));
而且这不是因为那个工作:
Incompatible parameter types in lambda expression:
expected object but found CellDataFeatures<ObservableList, String>
我一直在四处寻找如何解决它,但unfortunelly我找不到简单回答。
你的'TableColumn'是如何声明的? –