在Java 8中,Stream有一个方法reduce:
T reduce(T identity, BinaryOperator<T> accumulator);
是否允许累加器运算符修改其任何一个参数?我假设没有,因为JavaDoc说累加器应该是NonInterfering,尽管所有的例子都在讨论修改集合,而不是修改集合的元素。
所以,举个具体的例子,如果我们有
integers.reduce(0, Integer::sum);
假设Integer
是可变的,sum
会被允许修改它的第一个参数,将它的第二个参数的值添加(就地)吗?
我想不会,但我也想要一个这种干扰导致问题的例子。
https://stackoverflow.com/questions/23869930
复制相似问题