学习笔记-Java8新特性-第三节-方法引用与构造器引用
方法引用与构造器引用
什么是方法引用
-
对方法的引用
-
若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代
- 已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致
-
可以将方法引用理解成Lambda表达式的另外一种表现形式
语法格式
-
对象::实例方法名
-
类::静态方法名
-
类::示例方法名
-
当参数有两个,第一个参数是方法的调用者,第二个是方法的参数时
-
可以用这种写法
-
示例
public void test1() {
Consumer<String> consumer1 = (x) -> System.out.println(x);
PrintStream ps = System.out;
Consumer<String> consumer2 = ps::println;
Consumer<String> consumer3 = System.out::println;
}
构造器引用
-
含义和方法引用相似
-
同样需要参数列表保持一致
格式
ClassName::new
示例
public void test2() {
Supplier<Employee> sup = () -> new Employee();
// public Employee() {
//
// }
Supplier<Employee> sup2 = Employee::new;
// public Employee(String name) {
// this.name = name;
// }
Function<String, Employee> function = Employee::new;
}
数组引用
- 与构造器引用类似
格式
Type[]::new
示例
public void test3() {
Function<Integer, Integer[]> function1 = (x) -> new Integer[x];
Function<Integer, Integer[]> function2 = Integer[]::new;
}
合集:
学习笔记-Java8新特性
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!