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

2021-05-03 19:27

阅读:474

标签:out   形参   override   列表   return   fun   pre   举例   构造器   

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

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

3.构造器引用举例:

//Supplier中的T get()
   //Employee的空参构造器:Employee()
   @Test
   public void test1(){

       Supplier sup = new Supplier() {
           @Override
           public Employee get() {
               return new Employee();
           }
       };
       System.out.println("*******************");

       Supplier  sup1 = () -> new Employee();
       System.out.println(sup1.get());

       System.out.println("*******************");

       Supplier  sup2 = Employee :: new;
       System.out.println(sup2.get());
   }

//Function中的R apply(T t)
   @Test
   public void test2(){
       Function func1 = id -> new Employee(id);
       Employee employee = func1.apply(1001);
       System.out.println(employee);

       System.out.println("*******************");

       Function func2 = Employee :: new;
       Employee employee1 = func2.apply(1002);
       System.out.println(employee1);

   }

//BiFunction中的R apply(T t,U u)
   @Test
   public void test3(){
       BiFunction func1 = (id,name) -> new Employee(id,name);
       System.out.println(func1.apply(1001,"Tom"));

       System.out.println("*******************");

       BiFunction func2 = Employee :: new;
       System.out.println(func2.apply(1002,"Tom"));

   }

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

5.数组引用举例:

//Function中的R apply(T t)
@Test
public void test4(){
    Function func1 = length -> new String[length];
    String[] arr1 = func1.apply(5);
    System.out.println(Arrays.toString(arr1));

    System.out.println("*******************");

    Function func2 = String[] :: new;
    String[] arr2 = func2.apply(10);
    System.out.println(Arrays.toString(arr2));

}

 

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

标签:out   形参   override   列表   return   fun   pre   举例   构造器   

原文地址:https://www.cnblogs.com/qiu-hua/p/13196655.html


评论


亲,登录后才可以留言!