显然以下的工作,但我不喜欢包裹物品元组,番石榴函数参数
ImmutableMap<String, Function<Tuple2<Double>, Double>> op = new //
ImmutableMap.Builder<String, Function<Tuple2<Double>, Double>>()
.put("+", new Function<Tuple2<Double>, Double>() {
@Override public Double apply(Tuple2<Double> data) {
return data.Val_1 + data.Val_2;
}
}).build();
System.out.println(op.get("+").apply(new Tuple2<Double>(3d, 4d)));
我想写类似:
ImmutableMap<String, Function<Double[], Double>> op = new //
ImmutableMap.Builder<String, Function<Double[], Double>>()
.put("+", new Function<Double[], Double>() {
@Override
public Double apply(Double... data) {
return data[0] + data[1];
}
}).build();
System.out.println(op.get("+").apply(3d, 4d));
帮助将是最有用的,TY。
编辑:问题解决了,开始使用:
public interface T2Function<T> {
T apply(T Val_1, T Val_2);
}
你可以通过从你的'Function.apply'中返回另一个'Function'来实现,然后将其应用到第二个参数。 'Function.apply的(a)。适用(B)'。 “内部”函数直接使用'a',并接收'b'作为参数。这可以扩展为'n'参数。这将模仿Haskell对函数的处理,但我不确定你在Javaland会从中获得什么。 – jpaugh 2015-12-11 15:03:35