功能组合链使用方法

时间:2016-11-05 15:33:57

标签: java lambda

我应该如何声明以这种方式接受参数的方法组合:

Function<List<String>,String> f1;
Function<String,List<Integer>> f2;
Function<List<Integer>,Integer> f3;

System.out.println(this.combine(f1));
System.out.println(this.combine(f1,f2));
System.out.println(this.combine(f1,f2,f3));
etc

这是一个通用对象,其参数指示它包含的对象类型,在上面的示例中,它是一个字符串列表

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

谢谢,你是对的。方法组合应该返回最后一个函数的值,所以:

Obj obj = new Obj(Arrays.asList(args));
String s = obj.combine(f1);
List<Integer> l = obj.combine(f1,f2);
Integer i = obj.combine(f1,f2,f3)

你不能重载合并方法