gpt4 book ai didi

java - 如何将匿名java类转换为lambda表达式?

转载 作者:行者123 更新时间:2023-12-02 05:06:18 26 4
gpt4 key购买 nike

我有一个关于 JavaFX 的应用程序。在这个应用程序中,我需要实现专栏的编辑器。在旧版本中,代码完美运行:

myColumn.setOnEditCommit(new EventHandler<TableColumn.CellEditEvent<MyRowDataObject, String>>() {
@Override
public void handle(TableColumn.CellEditEvent<MyRowDataObject, String> t) {
((MyRowDataObject) t.getTableView().getItems().get(
t.getTablePosition().getRow())
).setFirstName(t.getNewValue());
}
}
);

但是当我尝试使用 lambda 重写代码时

myColumn.setOnEditCommit((TableColumn.CellEditEvent event) ->
((MyRowDataObject) event.getTableView().getItems().get(event.getTablePosition().getRow())).setEmail(event.getNewValue().toString())
);

我收到错误:错误:java:不兼容的类型:lambda 表达式中的参数类型不兼容告诉我如何指定 lambda 表达式的类型?

最佳答案

也许有人会感兴趣,转来编译代码如下。

 myColumn.setOnEditCommit(event -> {
final TableColumn.CellEditEvent _evn = (TableColumn.CellEditEvent) event;
((MyRowDataObject) _evn.getTableView().getItems().get(_evn.getTablePosition().getRow())).setEmail(_evn.getNewValue().toString());
});

关于java - 如何将匿名java类转换为lambda表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27759765/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com