ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Lambda

2022-07-22 10:31:22  阅读:114  来源: 互联网

标签:省略 System 接口 println Lambda public out


作用: 简化匿名内部类的代码写法。

 

注意: Lambda表达式只能简化函数式接口的匿名类的写法形式。

 

什么是函数是接口:

   首先必须是接口,其次接口中有且仅有一个抽象方法的形式。

   通常我们会在接口上加上一个 @FunctionalInterface 注解,标记该接口必须是满足函数式接口。

 

 1 public class lambda_demo2 {
 2     public static void main(String[] args) {
 3 
 4         // 简化
 5         Swimming s1 = () -> {
 6 
 7                 System.out.println("老师游泳厉害");
 8         };
 9         go(s1);
10 
11         System.out.println("------------------------------------");
12 
13         go(() -> {
14             System.out.println("学生游泳也厉害");
15         });
16     }
17     // 接口作为类型,代表可以接所有子类对象
18     public static void go(Swimming s) {
19         System.out.println("开始!");
20         s.swim();
21         System.out.println("结束!");
22     }
23 }
24 
25 @FunctionalInterface // 一旦加上这个注解必须是函数式接口,里面只能有一个抽象方法
26 interface Swimming{
27     void swim();
28 }

 

 

 

 

Comparator , 窗口监听 也可以简化

 

 1 import javax.swing.*;
 2 import java.awt.event.ActionEvent;
 3 import java.util.Arrays;
 4 
 5 public class lambda_demo3 {
 6     public static void main(String[] args) {
 7 
 8         // 降序排序  (自定义比较器对象,只能支持引用类型的排序)
 9 //        Integer[] ages1 = {34, 21, 45, 12};
10 //        Arrays.sort(ages1, new Comparator<Integer>() {
11 //            @Override
12 //            public int compare(Integer o1, Integer o2) {
13 //
14 //                //降序
15 //                return -(o1 - o2);
16 //            }
17 //        });
18 
19 
20         // 简化
21         Integer[] ages1 = {34, 21, 45, 12};
22         Arrays.sort(ages1, (Integer o1, Integer o2) -> {
23             {
24                 //降序
25                 return -(o1 - o2);
26             }
27         });
28         System.out.println(Arrays.toString(ages1));
29 
30         System.out.println("----------------------------------");
31 
32         JFrame win = new JFrame("登录界面");
33         JButton btn = new JButton("按钮");
34 
35 //        btn.addActionListener(new ActionListener() {
36 //            @Override
37 //            public void actionPerformed(ActionEvent e) {
38 //                System.out.println("监听到有人再按");
39 //            }
40 //        });
41 
42         //监听是否再按按钮
43         btn.addActionListener((ActionEvent e) -> {
44                 System.out.println("监听到有人在按");
45         });
46 
47         win.add(btn);
48         win.setSize(200, 200);
49         win.setVisible(true);
50     }
51 
52 }

 

 

 

Lambda表达式的省略方法(进一步在Lambda表达式的基础上继续简化)

   参数类型可以省略不写。

   如果只有一个参数,参数类型可以省略,可以省略大括号不写,同时要省略分号。

   如果Lambda表达式的方法体代码只有一行代码。可以省略大括号不写,此时,如果这行代码是return语句,必须省略return不写,同时也必须省略分号不写。

 

标签:省略,System,接口,println,Lambda,public,out
来源: https://www.cnblogs.com/xiao-wang-tong-xue/p/16504835.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有