java_Lambda表达式

 

 

 

 

/*
Lambda表达式的出现的原因
一个接口内部只有一个方法时,有以下几种方式调用该接口
1.需要先创建该接口的实现类,如下面的(2)
2.创建一个静态内部类,如下面的(3)
3.创建一个局部内部类,如下面的(4)
4.创建一个匿名内部类,如下面的(5)
5.Lambda表达式,如下面的(6)

有以上几种情况的代码量可以看出,Lambda表达式的优点,
1.简化了代码,使代码更整洁清晰
2.简化了内部类的使用
3.除去多余的代码块,只保留核心的代码块
*/
 1 package com.landa.test;
 2 
 3 public class Lambda1 {
 4     public static void main(String[] args) {
 5         Inter inter = new InterImpl();
 6         inter.test();
 7 
 8         inter = new InterImpl2();
 9         inter.test();
10 
11         // 4.局部内部类
12         class InterImpl3 implements Inter{
13             @Override
14             public void test() {
15                 System.out.println("Inter接口_局部内部类");
16             }
17         }
18         inter = new InterImpl3();
19         inter.test();
20 
21         // 5.匿名内部类
22         inter = new Inter(){
23             @Override
24             public void test() {
25                 System.out.println("Inter接口_匿名内部类");
26             }
27         };
28         inter.test();
29 
30         // 6.Lambda表达式
31         inter = () -> System.out.println("Inter接口_Lambda表达式");
32         inter.test();
33     }
34 
35     // 3.创建静态内部类
36     static class InterImpl2 implements Inter{
37         @Override
38         public void test() {
39             System.out.println("Inter接口_静态内部类");
40         }
41     }
42 }
43 
44 // 1.定义一个接口
45 interface Inter {
46     // 定义一个方法
47     void test();
48 }
49 // 2.定义接口的实现类
50 class InterImpl implements Inter{
51 
52     @Override
53     public void test() {
54         System.out.println("Inter接口的实现类");
55     }
56 }

 

/*
Lambda表达式只有一行代码的情况才能去除花括号,如果有多行则需要使用代码块包裹
多个参数也可以去掉参数类型,要去掉就都去掉,必须加上括号
*/
 1 package com.landa.test;
 2 
 3 public class Lambda2 {
 4     public static void main(String[] args) {
 5         // 1.Lambda表达式
 6         Love love = (int a) ->{
 7             System.out.println("I Love You,"+a);
 8         };
 9         love.love(520);
10 
11         // 简化Lambda表达式的几种方式
12         // 简化1:简化参数类型
13         love = (a) ->{
14             System.out.println("I Love You,"+a);
15         };
16         love.love(521);
17 
18         // 简化2:去除括号
19         love = a ->{
20             System.out.println("I Love You,"+a);
21         };
22         love.love(1314);
23 
24         // 简化3:去除花括号,这种只适合有一行代码的场合
25         love = a -> System.out.println("I Love You,"+a);
26         love.love(1111);
27 
28     }
29 }
30 
31 interface Love{
32     void love(int a);
33 }

 




posted @ 2021-07-30 22:01  ~Forever  阅读(41)  评论(0编辑  收藏  举报