如何在 Java 中使用方法引用實現動作監聽器?
在 Java 8 中,lambda 表示式接受匿名函式作為引數。在提供匿名方法的情況下,我們還可以使用“::”符號傳遞現有方法的引用。方法引用使我們能夠執行相同操作,但使用現有方法。
我們還可以為JButton實現動作監聽器,方法是使用靜態方法引用並使用類名引用。
語法
<Class-name>:: Method-name;
示例
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class MethodReferenceButtonListenerTest extends JFrame {
private JButton button;
public MethodReferenceButtonListenerTest() {
setTitle("Method Reference Button Listener");
button = new JButton("Method Reference");
button.setBorder(BorderFactory.createLineBorder(Color.black));
button.addActionListener(MethodReferenceButtonListenerTest :: executeMethod); // static method reference
getContentPane().add(button, BorderLayout.NORTH);
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) throws Exception {
new MethodReferenceButtonListenerTest();
}
public static void executeMethod(ActionEvent e) {
JOptionPane.showMessageDialog(null, ((JButton)e.getSource()).getText());
}
}輸出
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP