构造器引用 数组引用
package com.atguigu.java2;
import org.junit.Test;
import java.util.Arrays;
import java.util.function.BiFunction;
import java.util.function.Function;
import java.util.function.Supplier;
public class ConstructorRefTest {
@Test
public void test1() {
Supplier<Employee> sup = new Supplier<Employee>() {
@Override
public Employee get() {
return new Employee();
}
};
System.out.println("***************");
System.out.println(sup.get());
Supplier<Employee> sup1 = () -> new Employee();
System.out.println(sup1.get());
Supplier<Employee> sup2 = Employee::new;
System.out.println(sup2.get());
}
@Test
public void test2() {
Function<Integer, Employee> func1 = id -> new Employee(id);
Employee employee = func1.apply(1001);
System.out.println(employee);
Function<Integer, Employee> func2 = Employee::new;
System.out.println(func2.apply(1002).getName());
}
@Test
public void test3() {
BiFunction<Integer, String, Employee> func1 = (id, name) -> new Employee(id, name);
System.out.println(func1.apply(1001, "Tom"));
BiFunction<Integer, String, Employee> func2 = Employee::new;
System.out.println(func1.apply(1001, "Tom"));
}
@Test
public void test4() {
Function<Integer,String[]> func1 = length -> new String[length];
String[] arr1 = func1.apply(5);
System.out.println(Arrays.toString(arr1));
Function<Integer,String[]> func2= String[] ::new;
String[] arr2 = func1.apply(10);
System.out.println(Arrays.toString(arr2));
}
}