数组的构造器引用
数组也是Object的子类对象,所以同样具有构造器,只不过语法稍微有点区别
// 定义一个函数式接口
@Functionalinterface
public interface BuildArrays {
// 定义唯一的抽象方法
int[] buildArrays(int length);
}
// 定义测试类
public class Demo01ArraysConetructorMethod {
// 定义一个方法,方法中传递一个数组长度
public static int[] buildArrays(int length,BuildArrays buildArrays) {
return buildArrays.buildArrays(length);
}
public static void main(String[] args) {
// 先调用Lambda表达式操作
int[] arr01 = buildArrays(10, length -> new int[length]);
System.out.println(arr01.length) // 10
// 数组的构造器引用来优化Lambda表达式
int[] arr02 = buildArrays(10, int[] :: new);
System.out.println(arr02.length); // 10
/*
lambda表达式: length-> new int[length]
方法引用:int[]::new
这两种写法是等价的
}
}