构造函数引用与方法引用类似,不同之处在于方法的名称是new。 我们还可以使用数组类型创建构造函数引用。 例如,如果我们需要使用构造函数引用 int []::new 创建一个整数数组,其中参数是数组的长度。
ArrayTypeName[]::new
@FunctionalInterface
interface ArrayCreator {
int[] makeArray(int number);
}
public class ArrayConstructorRefTest {
public static void main(String[] args) {
ArrayCreator arrayCreator = int[]::new; // 数组的构造函数引用
int[] intArray = arrayCreator.makeArray(10);
for(int i = 0; i < intArray.length; i++) {
intArray[i] = i * i - i / 2;
System.out.println("[" + i + "] = " + intArray[i]);
}
}
}输出结果
[0] = 0 [1] = 1 [2] = 3 [3] = 8 [4] = 14 [5] = 23 [6] = 33 [7] = 46 [8] = 60 [9] = 77