java - 在哪里存储 java stream helper 方法

标签 java java-8 java-stream

<分区>

为了提高流的可读性,存储函数的首选位置在哪里?

例如:

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/

相关文章:

java - 关于java垃圾回收的问题

Java 8 流化 groupby 并计算多个属性

带有两个列表的 Java 8 流

java - Eclipselink 获取子类的连接惰性关联

java - Ical4j。 RFC5545。计算排除事件的发生次数

java - 如何使用 ParallelStream 将一个数组的每个元素添加到另一个数组的相应元素?

java - 批处理文件不会运行 Java Main 类

java - Java 方法引用中类型参数的使用

java - 按嵌套 Map 内的嵌套数组大小排序

java - 所有层均无模式