在
Python中,如果我想对xor操作进行折叠,我可以写:
reduce(operator.xor,my_things,0)
而不是更麻烦
reduce(lambda x,y: x^y,0)
在新的Java 8功能特性中是否有类似的东西?例如写这样的东西
myThings.reduce(0,Integer::xor)
而不是
myThings.reduce(0,(x,y) -> x ^ y)
解决方法
正如您在私有包
IntPipeline
中所建议的那样使用了
Integer#sum(int,int)
,但是没有其他数字运算符的类似方法.
@Override public final int sum() { return reduce(0,Integer::sum); }
您可以自己定义它们.