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

package com.itheima.demo10.ArrayMethodReference;

import java.util.Arrays;

/*

数组的构造器引用

*/
public class Demo {

/*
    定义一个方法
    方法的参数传递创建数组的长度和ArrayBuilder接口
    方法内部根据传递的长度使用ArrayBuilder中的方法创建数组并返回
 */
public static int[] createArray(int length, ArrayBuilder ab){
    return  ab.builderArray(length);
}

public static void main(String[] args) {
    //调用createArray方法,传递数组的长度和Lambda表达式
    int[] arr1 = createArray(10,(len)->{
        //根据数组的长度,创建数组并返回
        return new int[len];
    });
    System.out.println(arr1.length);//10

    /*
        使用方法引用优化Lambda表达式
        已知创建的就是int[]数组
        数组的长度也是已知的
        就可以使用方法引用
        int[]引用new,根据参数传递的长度来创建数组
     */
    int[] arr2 =createArray(10,int[]::new);
    System.out.println(Arrays.toString(arr2));
    System.out.println(arr2.length);//10
}

}
package com.itheima.demo10.ArrayMethodReference;
/*

定义一个创建数组的函数式接口

*/
@FunctionalInterface
public interface ArrayBuilder {

//定义一个创建int类型数组的方法,参数传递数组的长度,返回创建好的int类型数组
int[] builderArray(int length);

}

你可能感兴趣的:(java)