使用Guava Collections2转换方法作为Apache CollectionUtil.forAllDo工作

AAa*_*Aaa 4 java apache-commons guava

我读过一些比较Guava和Apache Commons的帖子,大多数海报都喜欢使用Guava.

我也更喜欢使用Guava,尽管我经常发现自己需要结合Guava和Apache Commons的能力.

例如,我想对集合的所有元素执行操作.
我使用Guava的唯一方法就是调用transform方法.
但它使用Function获取值并返回另一个值,而我不需要返回另一个值.
例如,我只需要在Map不更改集合的情况下为a添加一些新条目.使用Apache Commons我会使用CollectionUtils.forAllDo.

如何在CollectionUtils.forAlDo不必返回某些值的情况下获得相同的效果?

dm3*_*dm3 9

我建议你使用一个简单的foreach循环来进行突变.番石榴不喜欢副作用,你只会将读者与非惯用代码混淆.

为了处理你的情况,Guava应该有一个方法Effect<T>接口apply(T): void和一个Collections2#foreach(Effect<T>)帮助器.