Lambda表达式

1.简介和用法

1.1举例

(o1,o2) -> Integer.compare(o1,o2)

1.2 格式

-> : Lambda操作符 或箭头操作符 ->左边:Lambda形参列表(其实就是接口中的抽象方法的形参列表) ->右边:lambda 体 (其实就是重写的抽象方法的方法体)

1.3 lambda表达式的使用:(分为6种情况介绍,详情见本文第二章 语法)

总结: ->左边 : lambda形参列表的参数类型可以省略(类型推断),如果形参列表内只有一个参数,那么小括号()可以省略 ->右边 : lambda体应该使用一对{}包裹,如果lambda体只有一条执行语句(可能是return语句),{}和return都可以省略

1.4 lambda表达式的本质:作为函数式接口的实例

1.5 如果一个接口中,只能声明了一个抽象方法,则此接口就成为函数式接口。我们可以在一个接口上使用lambda表达式,这样做可以检查它是否是一个函数式接口。

1.6 所有以前用匿名实现类表示的现在都可以用lambda表达式来写。

2.语法(六种格式)

():参数列表(括号可选)

-> 连接符,固定写法

{}: 参数列表(括号可选)

2.1 无参 无返回值

Runnable r1=() -> {System.out.print}

2.2 Lambda需要一个参数,但是没有返回值

Consumer<String> con=(String str) -> {System.out.print}

2.3 数据类型可以省略,因为可由编译器推断得出,称为“类型推断”

//不管有多少个参数都可以省略,但是多个参数时要按顺序写 Consumer<String> con=(str) -> {System.out.print}

2.4 Lambda若只需要一个参数时,小括号可以省略

Consumer<String> con=str-> {System.out.print}

2.5 Lambda需要两个或以上的参数,多条语句执行,并可以有返回值

Consumer<Integer> con=(x,y) -> { System.out.print("实现函数式结构方法!") return Integer.compare(x,y); }

2.6 当Lambda体只有一条语句时,return与大括号若有,都可以省略

Consumer<Integer> con= (x,y) -> Integer.compare(x,y)

__EOF__

本文作者Later
本文链接https://www.cnblogs.com/traveller-hzq/p/15889454.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   Later^^  阅读(78)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
点击右上角即可分享
微信分享提示