JKD8的新特性——构造器引用及数组引用
1. 构造器引用
和方法引用类似,函数式接口的抽象方法的形参列表和构造器的形参列表保持一致。
抽象方法的返回值类型即为构造器所属类的类型
123456789101112@Test
public void test(){
//bean对象需要含有对应的无参构造函数
//lambda表达式
Supplier<Employee> supplier=()->new Employee(3,"xiaobaicai",23,5000d);
System.out.println("________________________________");
//构造器引用
Supplier<Employee> supplier1=Employee::new;
System.out.println(supplier1.get());
}
123456789101112131415@Test
public void test2(){
Employee employee2=new Employee();
//传统的lambda表达式
Function<Integer,Employee> function=id->new Employee();
Employee employee=function.apply(100);
System.out.println(employee);
System.out.println("___________________________________");
//构造器引用
//bean必须含有对应的有参构造
Function<Integer,Employee> function1=Employee::new;
Employee employee1 = function1.apply(21);
System.out.println(employee1);
}
12345678 @Test
public void test3(){
//lambda表达式
BiFunction<Integer,String,Employee> function=(id,name)->new Employee(id,name);
Employee employee = function.apply(1, "你好");
//构造方法引用
BiFunction<Integer,String,Employee> function2=Employee::new;
}
2.数组引用
大家可以把数组看做一个特殊的类,则写法与构造器引用一致
12345678910111213 @Test
public void test4(){
//数组引用
//Function中的R apply(T t)
//1.lambda表达式的写法
Function<Integer,String[]> function=length-> new String[length];
String[] strings = function.apply(10);
System.out.println(Arrays.toString(strings));
System.out.println("________________________________");
Function<Integer,String[]>function1=String[]::new;
String[] strings1 = function1.apply(5);
}
JDK8新特性——stream API 的使用
JKD8的新特性——方法引用
评论
即可发布评论!
文章28
分类5
标签2
博客之家
一个优雅的写作平台
一个优雅的写作平台