方法引用与构造器引用
什么是方法引用
-
对方法的引用
-
若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,引用,Employee,new,方法,public
From: https://www.cnblogs.com/Andl-Liu/p/17419433.html