学习笔记-Java8新特性-第三节-方法引用与构造器引用

方法引用与构造器引用

什么是方法引用

  • 对方法的引用

  • 若Lambda体中的内容,已经有方法实现了,我们可以使用该方法的方法引用作为替代

    • 已经有方法实现了是指,该方法的参数列表和返回值类型和lambda的一致
  • 可以将方法引用理解成Lambda表达式的另外一种表现形式

语法格式

  • 对象::实例方法名

  • 类::静态方法名

  • 类::示例方法名

    • 当参数有两个,第一个参数是方法的调用者,第二个是方法的参数时

    • 可以用这种写法

示例

public void test1() {
Consumer consumer1 = (x) -> System.out.println(x);

PrintStream ps = System.out;
Consumer consumer2 = ps::println;

Consumer consumer3 = System.out::println;
}

构造器引用

  • 含义和方法引用相似

  • 同样需要参数列表保持一致

格式

ClassName::new

示例

public void test2() {
Supplier sup = () -> new Employee();

// public Employee() {
//
// }
Supplier 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;
}

posted @ 2023-05-21 23:05  0Andl0  阅读(72)  评论(0)    收藏  举报