Guava不支持这一点,因为你需要构建的匿名类最终比传统的循环命令更加冗长.Guava故意仅提供一组有限的函数式编程风格功能:有关详细信息,请参阅https://github.com/google/guava/wiki/FunctionalExplained#Caveats.
让我们假设Guava确实提供了这个.它必须看起来像
FluentIterable.from(integers).foldr(
new BiFunction<Integer, Integer, Integer>() {
@Override Integer sum(Integer a, Integer b) {
return a + b;
}
}, 0);
Run Code Online (Sandbox Code Playgroud)
...与...
int sum = 0;
for (int value : integers) {
sum += value;
}
Run Code Online (Sandbox Code Playgroud)
第二个版本需要更少的样板.在语言中没有lambdas的情况下,这是不值得的.
| 归档时间: |
|
| 查看次数: |
4082 次 |
| 最近记录: |