如何在 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()); } }
輸出
廣告