如何在 Java 中不创建匿名类来实现 Lambda 表达式?
java 8object oriented programmingprogramming
Lambda 表达式是一个匿名函数,没有名称,也不属于任何类,这意味着它是一个可以传递执行的代码块。
语法
(参数列表) -> {body}
在下面的程序中,我们可以在不创建匿名内部类的情况下实现 Lambda 表达式。对于按钮的 ActionListener 接口,我们需要重写一个抽象方法 addActionListener(),并使用 Lambda 表达式实现代码块。
示例
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LambdaExpressionButtonTest extends JFrame { private JButton btn; public LambdaExpressionButtonTest() { btn = new JButton("点击按钮"); // 使用 lambda 表达式为 JButton 实现 ActionListener btn.addActionListener(ae -> JOptionPane.showMessageDialog(null, "Button clicked !!!!")); add(btn, BorderLayout.NORTH); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setSize(400, 300); setLocationRelativeTo(null); setVisible(true); } public static void main(String args[]) { new LambdaExpressionButtonTest(); } }