Lambda - 监听器示例

匿名类监听器

在 Java 8 之前,使用匿名类来处理 JButton 的 click 事件是很常见的,如下面的代码所示。此示例显示如何在 btn.addActionListener 的范围内实现匿名侦听器。

JButton btn = new JButton("My Button");
btn.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent e) {
        System.out.println("Button was pressed");
    }
});

Lambda 听众

因为 ActionListener 接口只定义了一个方法 actionPerformed(),所以它是一个功能接口,这意味着有一个地方可以使用 Lambda 表达式来替换样板代码。可以使用 Lambda 表达式重写上面的示例,如下所示:

JButton btn = new JButton("My Button");
btn.addActionListener(e -> {
    System.out.println("Button was pressed");
});