java8 新特性中加入了lanmbda表达式,写个小程序体验一下
package com.jvm.test1; import javax.swing.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class LanmbdaTest extends JFrame { private JButton jButton; public LanmbdaTest() { this.setBounds(300, 300, 300, 300); this.setTitle("玩一玩lanmbda"); jButton = new JButton("点我"); //通常我们的写法 jButton.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("略略略"); } }); //使用Lanmbda表达式写 jButton.addActionListener(event -> System.out.println("Lanmbda say hello")); this.add(jButton); this.setVisible(true); this.setDefaultCloseOperation(EXIT_ON_CLOSE); } public static void main(String[] args) { new LanmbdaTest(); } }
使用方法一:内部类的写法
方法二:lanmbda表达式的写法
可以看出来,使用lanmbda表达式实现起来,代码会简洁很多