java8以上的函数式接口支撑三个以上参数
2020-03-22 本文已影响0人
zxbyh
java8里面增加了java.util.function.Function和lambda
有了这两个东东 就可以 实现函数式编程的特征了。如果有两个参数的函数可以用BiFunction,但是三个以上怎么弄啦? 这时候就可以用柯里化的办法了。
直接上代码:
import java.util.function.Function;
public class KeliDemo2 {
public static int funcP31(int p1,int p2,int p3){
return (p1+p2)*p3;
}
public static int funcP32(int p1,int p2,int p3){
return (p1+p2)/p3;
}
public static int funcGaojieStatic(int arg1,Function<Integer, Function<Integer, Function<Integer, Integer>>> triFunc){
return triFunc.apply(arg1).apply(3).apply(5);
}
public static void main(String[] args) {
System.out.println(
funcGaojieStatic(1,x -> y -> z -> funcP31(x,y,z))
);
System.out.println(
funcGaojieStatic(12,x -> y -> z -> funcP32(x,y,z))
);
}
}