gpt4 book ai didi

java中lambda表达式的分析与具体用法

转载 作者:qq735679552 更新时间:2022-09-29 22:32:09 27 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章java中lambda表达式的分析与具体用法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

Lamda表达式

λ 希腊字母表中排序第十一位字母,英语名称为Lambda 。

避免匿名内部类定义过多 。

其实质属于函数式 编程的概念 。

(params)->expression[表达式] 。

(params)->statement[语句] 。

(params)->{statements} 。

(a-> System.out.print(“i like lambda–>”+a)),

new Thread (()->System.out.println(“多线程学习。。。。”)).start(),

为什么要使用lambda表达式 。

  • 避免匿名内部类定义过多
  • 可以让你的代码看起来很简洁
  • 去掉了一堆没有意义的代码,只留下核心的逻辑。

也许你会说,我看了Lambda表达式,不但不觉得简洁,反而觉得更乱,看不懂了。那是因为我们还没有习惯,用的多了,看习惯了就好了.

本章重点

理解Functionl Interface(函数式接口)是学习java8 lambda表达式的关键所在 。

函数接口的定义 。

  • 任何接口,如果只包含唯一一个抽象方法,那么他就是一个函数式接口
  • 对于函数式接口,我们可以通过lambda式来创建该接口的对象。

实例代码

静态内部类,局部内部类,匿名内部类与lambda表达式 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
public class TestLambda1 {
     //静态内部类
     static class like2 implements ilike{
         @Override
         public void lambda() {
             System.out.println( "i like lambda2" );
         }
     }
 
 
 
 
     public static void main(String[] args) {
         ilike i= new like();
         i.lambda();
         i= new like2();
         i.lambda();
         //局部内部类
         class like3 implements ilike{
             @Override
             public void lambda() {
                 System.out.println( "i like lambda3" );
             }
 
         }
         i= new like3();
         i.lambda();
 
         //匿名内部类,没有类的名称,必须借助接口或者夫类
         i= new ilike() {
             @Override
             public void lambda() {
                 System.out.println( "i like lambda4" );
             }
         };
         i.lambda();
 
 
         //用lambda简化
         i =()-> {
             System.out.println( "i like lambda5" );
         };
         i.lambda();
 
 
 
 
     }
}
//定义一个函数式接口
interface ilike{
     void lambda();
}
//实现接口
class like implements ilike{
     @Override
     public void lambda() {
         System.out.println( "i like lambda" );
     }
}

lambda表达式:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
public class TestLambda2 {
 
     public static void main(String[] args) {
         Ilove love= null ;
 
 
         //2.lamda表示简化
//        Ilove love=(int a)->{
//                System.out.println("i love you-->"+a);
//
//        };
//        //简化1.去掉参数类型
//        love =(a)->{
//            System.out.println("i love you-->"+a);
//
//        };
         //简化2 简化括号
         love =a->{
             System.out.println( "i love you-->" +a);
         };
         //简化3 去掉花括号
         love =a-> System.out.println( "i love -->" +a);
         //总结
         //lambda表达式只能有一行代码的情况下才能简化成为一行,如果又多行就携程代码块
         //前提是接口为函数式(接口中只有一个方法位函数方法)
         //多个参数也可以去掉参数类型,要去掉都去掉,必须加上括号
 
 
 
         love.love( 2 );
     }
 
}
interface Ilove{
     void love( int a);
}

总结

到此这篇关于java中lambda表达式的文章就介绍到这了,更多相关java lambda表达式用法内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。

原文链接:https://blog.csdn.net/AA_le/article/details/115494842 。

最后此篇关于java中lambda表达式的分析与具体用法的文章就讲到这里了,如果你想了解更多关于java中lambda表达式的分析与具体用法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com