lambda表达式的进阶过程(二)

简介: lambda表达式的进阶过程

lambda表达式简化


未简化前:


10eac29f8fe9d490927f8c74cb3fcead_ecfb637b1a7f4aef8bfb063f46a7d51d.png


简化一:去掉参数类型


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love=( a)-> {
            System.out.println("I Love You"+a);
        };
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


简化二:去掉括号


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love= a-> {
            System.out.println("I Love You"+a);
        };
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


简化三:去掉花括号,前提是花括号中只有一行


public class Testlambda {
    public static void main(String[] args) {
        //lambda表达式
        ILove love;
        love= a-> System.out.println("I Love You"+a);
        love.love(2);
    }
}
interface ILove{
    void love(int a);
}


注:


lambda表达式只能由一行代码的情况,才能简化为一行,如果由都澳航那么就用代码块包裹

前提是接口为函数式接口

多个参数也可以去掉参数类型,要去掉,都去掉,不能带一个去一个


总结


  1. Lambda表达式实质上是一个可传递的匿名函数,可以实现函数式编程。


  1. 语法形式为:(参数列表) -> {代码体},去掉了方法名称、返回值声明等代码模板。


  1. Lambda通常用来传递给函数式接口的参数或赋值给函数式接口变量。


  1. 使用Lambda能避免创建匿名内部类,代码更简洁。


  1. Lambda可以访问外层作用域的变量,这称为闭包。


  1. Lambda表达了一个块的代码,也可以直接用于调用,称为代码块。


  1. Lambda可以延迟执行,只有被调用时才会执行。


  1. 常用的函数式接口如Consumer、Supplier、Function等。


  1. 可以用方法引用来直接引用已有的方法实现,更简洁。


  1. Lambda靠Java的类型推断来判断参数和返回类型。


  1. Lambda让Java加入了函数式编程的特性,可以写出更简洁、灵活的代码。


  1. 但也不能过度使用Lambda,需要区分应用场景,与面向对象编程结合使用。


总之,Lambda表达式让Java语言表达能力更强,编程风格更灵活,对于集合、流、事件驱动等编程场景都很有用。但还是要适度使用,与面向对象编程结合,发挥它的优势。


8b56f0e08bdff9b22e1974fa1dafb70c_235ded1d1bc543cf9d0f235a5e27958e.png


相关文章
|
Oracle 关系型数据库
oracle asm 磁盘显示offline
oracle asm 磁盘显示offline
641 2
|
4月前
|
人工智能 文字识别 算法
搬运5款让你眼前一亮的神器软件
本文推荐了五款小众但实用的软件,涵盖多种需求:GoodSync实现跨端文件同步与备份,采用高效加密技术;Cryptomator提供云盘文件加密保护,确保数据安全;3171.cn集成多种在线AI工具,助力办公学习;OneNote作为全能笔记工具,支持多平台协作与智能管理;EasyRecovery专注数据恢复,解决误删或格式化问题。这些软件功能强大且经过测试,值得尝试。
165 17
搬运5款让你眼前一亮的神器软件
|
7月前
|
人工智能 算法 API
重磅:谷歌AI Gemini 2.0 Pro/Flash已来,国内用户怎么使用?
当人工智能的浪潮席卷全球,谷歌再次站在了时代的潮头。Gemini 2.0,这个名字如今已成为 AI 领域最耀眼的明星。它不仅仅是一个模型的升级,更代表着一场技术革命的开端。2024 年末,Gemini 2.0 Flash 以其疾风骤雨般的速度震撼登场,紧接着,2025 年初,Gemini 2.0 Pro 系列的发布,则将这场革命推向了高潮。谷歌正式宣告,我们已步入 Gemini 2.0 时代!
608 15
|
6月前
|
机器学习/深度学习 人工智能 文字识别
从“泛读”到“精读”:合合信息文档解析如何让大模型更懂复杂文档?
随着deepseek等大模型逐渐步入视野,理论上文档解析工作应能大幅简化。 然而,实际情况却不尽如人意。当前的多模态大模型虽然具备强大的视觉与语言交互能力,但在解析非结构化文档时,仍面临复杂版式、多元素混排以及严密逻辑推理等挑战。
181 0
|
7月前
|
数据挖掘 OLAP 云计算
[直播预约]StarRocks 2025 Roadmap 全面解读
2月19日19:00-20:30,StarRocks TSC Member赵恒、康凯森将解读2025 Roadmap,并邀请多位专家分享最新进展。欢迎参与交流!
|
7月前
|
搜索推荐 小程序 数据挖掘
互联网运营为何必须做好用户行为数据分析
近年来互联网运营已经成为大多数企业不可或缺的一部分。随着互联网技术的不断发展和数字化转型的推进,越来越多的企业都在加速向互联网运营转型,而在这一过程当中,分析用户行为数据是至关重要的。接下来,我们就来探讨一下其中的原因。
|
9月前
|
Python
通义灵码写童年小游戏挑战赛
通义灵码版本升级啦,支持多种上下文组合,包括 #image 、#file、#codeChanges、#gitCommit 等,立即体验。
|
9月前
|
存储 数据处理 Python
Python如何显示对象的某个属性的所有值
本文介绍了如何在Python中使用`getattr`和`hasattr`函数来访问和检查对象的属性。通过这些工具,可以轻松遍历对象列表并提取特定属性的所有值,适用于数据处理和分析任务。示例包括获取对象列表中所有书籍的作者和检查动物对象的名称属性。
183 2
|
11月前
|
安全 物联网 数据安全/隐私保护
基于STM32的智能门锁
基于STM32的智能门锁
405 41