<分区>
为了提高流的可读性,存储函数的首选位置在哪里?
例如:
private BinaryOperator<Cash> sumPayments() {
return (payment1, payment2) -> payment1.sum(payment2);
}
我不确定它是否应该在使用它的服务类中,但也许它会在很多地方,所以一些额外的静态 Utils 怎么样?还是在实体中?
<分区>
为了提高流的可读性,存储函数的首选位置在哪里?
例如:
private BinaryOperator<Cash> sumPayments() {
return (payment1, payment2) -> payment1.sum(payment2);
}
我不确定它是否应该在使用它的服务类中,但也许它会在很多地方,所以一些额外的静态 Utils 怎么样?还是在实体中?
最佳答案
尽可能避免不必要的辅助方法。
在这个特定的例子中,辅助方法可以很容易地替换为方法引用,这是(可以说更多)可读的:
Cash total = subtotals.stream().reduce(Cash.ZERO, Cash::sum);
在其他情况下,您确实需要一个帮助器:想想一年后您会在哪里搜索这样的帮助器方法,当您必须调整现在几乎不熟悉的代码以适应新需求时。
关于java - 在哪里存储 java stream helper 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41076667/