Java --> Lambda表达式
首先来个错误示范以加深印象:
注 :Lambda表达式只能简化函数式接口的匿名内部类
例子:Lambda表达式简化Comparator接口的匿名形式:
1 public static void main(String[] args) {
2 Integer[] ages2 = {12, 15, 45, 30, 6};
3 // Arrays.sort(ages2, new Comparator<Integer>() {
4 // @Override
5 // public int compare(Integer o1, Integer o2) {
6 // return o2 - o1;
7 // }
8 // });
9
10 // Arrays.sort(ages2, (Integer o1, Integer o2) -> {
11 // return o2 - o1;
12 // });
13
14 //参数类型可以省略不写,只有一条语句,省略大括号,return省略,分号省略
15 Arrays.sort(ages2, (o1, o2) -> o2 - o1);
16
17
18 System.out.println("----------------------");
19
20 JFrame win = new JFrame("登录界面");
21 JButton btn = new JButton("登录");
22 // btn.addActionListener(new ActionListener() {
23 // @Override
24 // public void actionPerformed(ActionEvent e) {
25 // System.out.println("俺被点击了一下");
26 // }
27 // });
28 //简化形式
29 // btn.addActionListener((ActionEvent e)->{
30 // System.out.println("俺被点击了")
31 // }
32 // );
33 //根据省略规则:方法体内只有一行代码,可以省略大括号不写
34 btn.addActionListener((ActionEvent e) -> System.out.println("俺被点击了"));
35
36 win.add(btn);
37 win.setSize(400,300);
38 win.setVisible(true);
39
40 System.out.println(Arrays.toString(ages2));
41 }
示例运行结果: