如何在 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();
   }
}

输出


相关文章