标签:省略 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. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。