首页IT科技java函数式编程 pdf 百度云(Java函数式编程(1):Lambda表达式(2))

java函数式编程 pdf 百度云(Java函数式编程(1):Lambda表达式(2))

时间2025-05-05 06:03:14分类IT科技浏览4754
导读:您好,我是湘王,这是我的博客园,欢迎您来,欢迎您再来~...

您好              ,我是湘王                  ,这是我的博客园       ,欢迎您来           ,欢迎您再来~

从之前的Lambda表达式的演变过程可以知道                  ,Lambda表达式其实是一个对匿名内部类的简化过程:去掉了多余的语法修饰          ,只保留最最核心的部分            。Java中类似这种使用匿名内部类写代码的场景非常多        ,比如Runnable接口                   ,就是典型的最好使用Lambda表达式的地方                     。例如这样的代码:

可以清除地看到代码的简化过程      。

所以Lambda表达式的特点在于:

1            、匿名:像匿名函数一样             ,没有名字    ,只有代码块

2                     、函数:基于接口函数执行                    ,而不是类

3      、行为:传递行为                ,而非封装代码

很多刚开始学习Lambda表达式的人之所以觉得比较难适应,是因为没有弄明白完整的匿名函数是如何进行简化的这个过程         。我个人的学习经验是                 ,只要脑子里时时记着:Lambda是对匿名函数的简化                   ,就会容易理解一些了                     。

Java8除了将匿名内部类改造成了Lambda表达式之外    ,还提供了一个注解              ,叫做@FunctionalInterface         。它专门用来自定义需要的函数式接口      。例如:

它可以这么来用:

FruitInterface face = (t) -> System.out.println("这是自定义的函数式编程接口");

省略了实例化的类名         、省略了方法名                     、省略了参数类型                  ,只显示方法的参数和方法体                     。自然过渡到Lambda表达式的建议:

这是Java提供的注解             。除了这个注解以外       ,为了方便码农开发           ,Java也预定义了一堆可以直接拿来就用的函数式接口                  ,常用的都列到这个表里了:

什么是供给型呢?意思就是没有消费却能提供输出(消费指的是有没有参数)   。例如之前说的Runnable就是一个供给型接口          ,可以简化成:

() -> System.out.println("这是run()方法里面的打印语句");

再比如预测型        ,可能是:

所以                   ,先把Java预定义的函数式接口弄熟也是一个不错的开始                    。

之所以花这么多篇幅来说Lambda表达式和函数式接口             ,是因为这玩意确实是比较难理解                 。不管对于刚入门的新手    ,还是有了一些开发经验的老手                    ,都是如此。所以                ,新人不必觉得为啥自己学不会                。不止是新人,很多有多年开发经验的人都容易卡在这里                 ,这也是我为啥宁可多花点篇幅反复啰嗦的原因                     。

至于方法引用和构造器引用                   ,并不是什么高大上的技术    ,只要把Lambda表达式和函数式编程的底层原理搞懂了              ,那玩意分分钟学会   。

感谢您的大驾光临!咨询技术         、产品      、运营和管理相关问题                  ,请关注后留言            。欢迎骚扰       ,不胜荣幸~

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
linux高性能服务器编程:使用muduo c++网络库(9、Linux 高并发Web服务器项目实战(附代码下载地址))