关于对java中的Lamba表达式的理解
1 Lamba表达式出现的罪魁祸首是函数式接口
啥叫函数式接口, 就是, 一个接口, 内部有且只有一个抽象方法, md, 只有一个待实现的方法还要造成一个接口, 有亿点点多余
为了简化这种接口的实现, 所以出现了Lamba表达式
2 如果说Lamba表达式的出现是为了简化函数式接口的实现(只是体现在少写代码上)
那么, 函数引用的出现就是为了简化Lamba表达式的书写
为啥:
函数引用的出现场景:
如果Lamba表达式实现的方法中,
(1) 只有一条执行语句,
(2) 并且这条执行语句是一个对象当中的方法(或者类中的静态方法)
(3) 此方法的参数和返回值与Lamba表达式的参数和返回值相同
那么, 我们就可以使用这个方法, 直接作为整个Lamba表达式
3 使用Lamba表达式的注意事项
(1) 如果方法的实现体中只有一条执行语句, 但是没有返回值, 那么大括号{...}不能省略
(2) 对于函数引用的第三种情况的理解:
类名 : : 实例方法名,
虽然说对这个东西可以知道怎么用, 但是实在是不知道怎么理解
自己想了一种理解方式:
如果Lamba表达式中只有一条执行语句, 并且Lambda表达式的第一个参数是这个方法的调用者, 其它的参数是这个方法的参数
那么, 我们就可以使用 类名 : : 实例方法名 的形式来写Lamba表达式,
怎么说呢, 形式上就是, Lambada表达式的原生写法的第一个参数是函数体中执行的函数方法的调用者, 其它参数是执行的函数方法中的参数
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通