我有一个lambdas的载体:
public interface MyLambda {
int execute(Object lambdaParams);
}
Vector<MyLambda> lambdas = new Vector<>();
lambdas.add((params) -> {return 1});
lambdas.add((params) -> {return 2});
lambdas.add((params) -> {return 3});
我想用相同的参数调用所有lambdas,并总结结果。我尝试了以下几点:
int sum = lambdas.parallelStream().collect(Math::addExact);
或:
int sum = lambdas.parallelStream().reduce(0, Math::addExact);
但自然它没有用。我使用了更传统的方法:
int sum = 0;
for (MyLambda lambda : lambdas) {
sum += lambda.execute(myParams);
}
它有效,但感觉就像是错误的方式。
如何执行所有lambdas并对结果求和?