public interface ArrayBuilder { /* * 定义一个创建数组的函数式接口 * */ int[] builderArray(int length); }
public class demo11 { /* * 定义一个方法 * 方法的参数传递创建数组的长度和ArrayBuilder接口 * 方法内部根据传递的长度使用Arraybuilder中的方法创建数组并返回*/ public static int[] createArray(int length,ArrayBuilder ab) { return ab.builderArray(length); } public static void main(String[] args) { // int[] arr1 = createArray(10,(length)->{ // return new int[length]; // }); /* 使用方法引用优化lambda表达式 已知创建的就是int[]数组 数组的长度就是已知的 就可以使用方法引用 int[] 引用new,根据参数传递的长度来创建数组 * */ int[] arr1 = createArray(10,int[]::new); System.out.println(arr1.length); } }