Java 8 使用 lambda 将 clickListener 作为参数传递

标签 java lambda java-8 vaadin

我想创建一个方法,它在 vaadin 中创建一个带参数的按钮。

private void addButton(Button button, String toolTip, FontAwesome fontAwesome, ... clickEvent){
        button = new Button(fontAwesome);
        button.setDescription(toolTip);
        button.setEnabled(false);
        button.addClickListener(event -> clickEvent);
    }

通过电话:

addButton(newButton, "My test Button", FontAwesome.PLUS_SQUARE, someObject.do())

如何使用 lambda 将 clickListener 设置为参数?

最佳答案

private void addButton(Button button, String toolTip, FontAwesome fontAwesome, Button.ClickListener clickEvent){
    button = new Button(fontAwesome);
    button.setDescription(toolTip);
    button.setEnabled(false);
    button.addClickListener(clickEvent);
}

然后您将像这样调用您的方法 addButton(newButton, "Test", o, evt -> someMethod());

[编辑]:虽然我认为它回答了您的问题,但请注意,方法调用者无法访问new Button,这可能是您的错误代码,您应该考虑返回按钮

关于Java 8 使用 lambda 将 clickListener 作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44436753/

相关文章:

java - 如何消费一条消息?

C# 动态创建 Lambda 表达式

node.js - 如何将TVP中的缓冲区数据从node.js传递到lambda中的sql服务器?

java - OSX 系统菜单栏在 JavaFX 中不工作

java - jaxb:xsd 到 java,可以具有其他两个元素之一的父元素

java - Java 中的文件迭代器?

C# Lambda+Extensions+Fluent - 我该怎么做?

java - 是否可以将路径变量和请求参数绑定(bind)到一个对象中?

java - 按属性查找最小值,以列表形式返回

java - 如何在 Mat 对象中插入一条线或矩形(openCV)