Java 8中运算符的便捷函数?
在Python中,如果我想对操作xor进行折叠,我可以这样写:
reduce(operator.xor, my_things, 0)
而不是更繁琐
reduce(lambda x, y: x^y, my_things, 0)
在新的Java 8功能特性中是否有这样的东西? 例如写这样的东西
myThings.reduce(0, Integer::xor)
而不是
myThings.reduce(0, (x, y) -> x ^ y)
有Integer#sum(int, int)
,这是在包私有IntPipeline
,但对其他数值运算符没有类似的方法。
@Override
public final int sum() {
return reduce(0, Integer::sum);
}
你可以自己定义它们。
是的,您可以在任何静态或实例方法上使用::
方法引用运算符来代替函数接口(lambda)。 我不认为Integer有一个。