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