• java 基本语法(十七)Lambda (四)构造器引用与数组引用


    1.构造器引用格式:
    类名::new

    2.构造器引用使用要求:
    和方法引用类似,函数式接口的抽象方法的形参列表和构造器的形参列表一致。抽象方法的返回值类型即为构造器所属的类的类型

    3.构造器引用举例:

    //Supplier中的T get()
       //Employee的空参构造器:Employee()
       @Test
       public void test1(){
    
           Supplier<Employee> sup = new Supplier<Employee>() {
               @Override
               public Employee get() {
                   return new Employee();
               }
           };
           System.out.println("*******************");
    
           Supplier<Employee>  sup1 = () -> new Employee();
           System.out.println(sup1.get());
    
           System.out.println("*******************");
    
           Supplier<Employee>  sup2 = Employee :: new;
           System.out.println(sup2.get());
       }
    
    //Function中的R apply(T t)
       @Test
       public void test2(){
           Function<Integer,Employee> func1 = id -> new Employee(id);
           Employee employee = func1.apply(1001);
           System.out.println(employee);
    
           System.out.println("*******************");
    
           Function<Integer,Employee> func2 = Employee :: new;
           Employee employee1 = func2.apply(1002);
           System.out.println(employee1);
    
       }
    
    //BiFunction中的R apply(T t,U u)
       @Test
       public void test3(){
           BiFunction<Integer,String,Employee> func1 = (id,name) -> new Employee(id,name);
           System.out.println(func1.apply(1001,"Tom"));
    
           System.out.println("*******************");
    
           BiFunction<Integer,String,Employee> func2 = Employee :: new;
           System.out.println(func2.apply(1002,"Tom"));
    
       }

    4.数组引用格式:
    数组类型[] :: new

    5.数组引用举例:

    //Function中的R apply(T t)
    @Test
    public void test4(){
        Function<Integer,String[]> func1 = length -> new String[length];
        String[] arr1 = func1.apply(5);
        System.out.println(Arrays.toString(arr1));
    
        System.out.println("*******************");
    
        Function<Integer,String[]> func2 = String[] :: new;
        String[] arr2 = func2.apply(10);
        System.out.println(Arrays.toString(arr2));
    
    }
  • 相关阅读:
    Java中的匿名对象
    Java决策制定
    「干货总结」程序员必知必会的十大排序算法
    阿里开发手册之ArrayList正确操作方式
    Java中this关键字的使用
    Java封装的概念详解
    【C++】数组的最大子数组
    第二章:分治I
    【C++】归并排序
    第一章:算法绪论
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/13196655.html
Copyright © 2020-2023  润新知