如何解决如何使用不同类型的流减少?
我有一个类型为 One
的值流,我想将它们缩减为类型为 Sum
的值。 (它不是整数,只是举例)。
而且,我有一个 BiFunction
求和器,它返回 Sum
(带有一些逻辑的 Sum sum = transformer.apply(sum,one)
)。
并且初始值为 Sum
(Sum.INITIAL
)。
尝试做类似的事情:
source.stream().reduce(Sum.INITIAL,(Sum sum,One one) -> transformer.apply(sum,one));
where source
- One
的列表。
还有"Bad return type in lambda expression: Sum cannot be converted to One"
。
解决方法
您需要组合器函数作为第三个参数。
source.stream().reduce(Sum.INITIAL,(Sum sum,One one) -> transformer.apply(sum,one),(Sum s1,Sum s2) -> {/*combine,e.g. return s1.add(s2)*/});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。