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");
});