調用方法,我發現非常好的一段代碼在這裏: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'是如何聲明的? –