引用类型
- 方法引用
- 数组引用
- 构造器引用
//对象引用
@Test
public void objectReference(){
Function<UserPo, String> function = UserPo::getName;
System.out.println(function.apply(list.get(0)));
Supplier<String> sup2 = list.get(0)::getName;
System.out.println(sup2.get());
}
//数组引用
@Test
public void arrayReference(){
int [] arr = new int []{1,2,3,4};
int reduce = Arrays.stream(arr)
.reduce(0, (x, y) -> x + y);
System.out.println(reduce);
OptionalInt reduce1 = Arrays.stream(arr)
.reduce(Integer::sum);
System.out.println(reduce1.getAsInt());
Function<Integer, String[]> fun = (args) -> new String[args];
String[] strs = fun.apply(10);
System.out.println(strs.length);
System.out.println("--------------------------");
Function<Integer, UserPo[]> fun2 = UserPo[] :: new;
UserPo[] emps = fun2.apply(20);
System.out.println(emps.length);
UserPo emp = emps[0];
System.out.println(emp);
}
//构造器引用
@Test
public void constructorReference(){
Supplier<UserPo> supplier = UserPo::new;
UserPo userPo = supplier.get();
System.out.println(userPo);
Function<Integer,UserPo> function = UserPo::new;
UserPo apply = function.apply(20);
System.out.println(apply);
}