方法引用_数组的构造器引用
package com.chunzhi.Test10ArrayMethodReference; import java.util.Arrays; /* 数组的构造器引用 */ public class Test { /* 定义一个方法 方法的参数传递创建数组的长度和ArrayBuilder接口 方法内部根据传递的长度使用ArrayBuilder中的方法创建数组并返回 */ public static int[] creatArray( int length, ArrayBuilder ab) { return ab.builderArray(length); } public static void main(String[] args) { // 调用createArray方法,传递数组的长度和Lambda表达式 int[] arr01 = creatArray(10, (int len) -> { // 根据数组的长度,创建数组并返回 return new int[len]; }); System.out.println(arr01.length); // 10 /* 使用方法引用优化Lambda表达式 已知创建的就是int[]数组 数组的长度也是已知的 就可以使用方法引用 int[]引用new,根据参数传递的长度来创建数组 */ int[] arr02 = creatArray(5, int[]::new); System.out.println(Arrays.toString(arr02)); // 输出数组的内容:[0, 0, 0, 0, 0] System.out.println(arr02.length); // 5 } }
package com.chunzhi.Test10ArrayMethodReference; /* 定义一个创建数组的函数式接口 */ public interface ArrayBuilder { // 定义一个创建int类型数组的方法,参数传递数组的长度,返回创建好的int类型数组 int[] builderArray (int length); }