Java方法返回类型,预定义的Collection vs Collector?

时间:2017-09-24 02:46:37

标签: java java-8

我只是对方法返回类型中的代码可重用性有疑问。

在Java 8中有收集器的概念,用户将指定流将返回的集合类型。

如果基本检索方法接受收集器参数而不是返回预定义的集合,比如列表,那将是有益的。

使用预定义Collection的方法然后将Collectors.toList()传递给基本检索方法。

1 个答案:

答案 0 :(得分:0)

因为<TextBox IsEnabled="{Binding !HasErrors}"/>提供了您描述的功能,所以任何其他类都没有理由这样做:不是采用java.util.stream.Stream,而是将流收集到其中,然后返回结果,更有意义的是只返回流开始:它更清晰,它给调用者提供了比选择集合类型更多的灵活性。

那就是说,在大多数情况下,你最好只返回一个合适的集合类型。对于给定的API,您通常比客户更了解哪些集合类型是有意义的,并且您的客户通常不会那么关心,除非他们之后想要改变集合的某些原因。如果您只返回一个Collector,那么您将向您的客户提供更少的关于预期结果的信息(除非您通过将信息放入Javadoc来补偿它,然后他们必须阅读并理解)。