学习笔记-Java8新特性-第二节-Lambda表达式
Lambda表达式
Lambda表达式是什么
-
Lambda是一个匿名函数
-
是一段可以传递的代码
-
是一种语法糖
-
使用Lambda可以写出更简洁、更灵活的代码
-
如果要使用Lambda表达式,需要函数式接口的支持
Lambda的语法格式
基础语法
-
Java8中引入了一个新的操作符
->
-
称为箭头操作符或Lambda操作符
-
箭头左侧
- Lambda表达式的参数列表
-
箭头右侧
-
Lambda要实现的功能
-
称为Lambda体
-
-
语法格式一:无参数无返回值
() -> ?;
示例:
() -> System.out.println("Hello Lambda!");
public void test1() {
Runnable r1 = () -> System.out.println("Hello Lambda!");
r1.run();
}
语法格式二:只有一条语句
(a) -> ?;
lambda体可以不用大括号
示例:
public void test2() {
Consumer<String> con = (x) -> System.out.println(x);
con.accept("Lambda");
}
语法格式三:若只有一个参数,则小括号可以省略不写
a -> ?;
示例:
public void test3() {
Consumer<String> con = x -> System.out.println(x);
con.accept("Lambda");
}
语法格式四:有多条语句
有多条语句时,lambda体必须用大括号
Comparator<Integer> com = (x, y) -> {
System.out.println("函数式接口");
return Integer.compare(x, y);
};
语法格式五:只有一条语句,需要返回值时
大括号和return都可以不写
Comparator<Integer> com = (x, y) -> Integer.compare(x, y);
语法格式六:Lambda表达式的参数列表的数据类型可省略
JVM可以通过上下文来推断出数据类型,称为类型推断
口诀
左右遇一括号省
左侧推断类型省
函数式接口
-
若接口中只有一个抽象方法的接口,称为函数式接口
-
可以使用
@FunctionInterface
进行修饰 -
如果要使用Lambda表达式,需要函数式接口的支持
Java8中内置的四大核心函数式接口
-
Consumer<T> : 消费型接口
void accept(T t);
-
Supplier<T> : 供给型接口
T get();
-
Function<T, R> : 函数式接口
R apply(T t);
-
Predicate<T> : 断言型接口
boolean test(T t);
还有一些其他接口,用于满足其他需求
合集:
学习笔记-Java8新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix