讨论/《Java 实战(第 2 版)》 - 3.6.2 构造函数引用/
《Java 实战(第 2 版)》 - 3.6.2 构造函数引用
共 1 个回复

答案:你看,构造函数引用的语法是ClassName::new,那么在这个例子里面就是RGB::new。但是你需要与构造函数引用的签名匹配的函数式接口。由于语言本身并没有提供这样的函数式接口,因此你可以自己创建一个:

public interface TriFunction<T, U, V, R> {
R apply(T t, U u, V v);
}

现在你可以像下面这样使用构造函数引用了:

TriFunction<Integer, Integer, Integer, RGB> colorFactory = RGB::new;