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