什么是构造函数引用?如何使用它?代码举例讲解

构造函数引用是一种特殊的方法引用,它用于引用构造函数。我们可以使用构造函数引用创建函数式接口的实例。

构造函数引用的格式为:

类名::new

例如:

String::new 

表示引用 String 类的构造函数。

我们可以在如下场景中使用构造函数引用:

  1. 当函数式接口的抽象方法的形参列表与某个构造方法的形参列表相同时,可以使用构造方法引用初始化函数式接口的实例。
    例如:
BiFunction<Integer, Integer, String> bf = String::new;
String s = bf.apply(100, 200);

这里 String::new 引用 String(int, int) 构造函数。

  1. 当函数式接口的抽象方法返回某个类的实例时,可以使用该类的构造方法引用。
    例如:
Supplier<String> supplier = String::new; 
String s = supplier.get();

这里 String::new 引用 String() 无参构造函数。

  1. 在 Stream API 中,可以使用构造方法引用来生成流中的元素。
    例如:
Stream<String> stream = Stream.generate(String::new);

这会生成一个无限流,每个元素都是通过 String::new 无参构造函数创建的。