方法引用_数组的构造器引用

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);
}

 

posted @ 2020-12-05 16:37  春志  阅读(180)  评论(0编辑  收藏  举报