如何将匿名java类转换为lambda表达式? [英] How transform anonymous java class to lambda expression?

查看:230
本文介绍了如何将匿名java类转换为lambda表达式?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在JavaFX上有一个应用程序。在这个应用程序中,我需要实现该列的编辑器。在旧版本的代码中运行得非常完美:

I have an application on JavaFX. In this application, I need to implement, the editor of the column. In the old version of the code worked perfectly:

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重写代码时

but when I tried to rewrite the code using the lambda

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

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

I get an error :Error: java: incompatible types: incompatible parameter types in lambda expression Tell me how to specify the type of a lambda expression?

推荐答案

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

Maybe someone will be interested, turned to compile the code as follows.

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

这篇关于如何将匿名java类转换为lambda表达式?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆