【问题标题】:Why does the library contain both Stream.of(T t) and Stream.of(T... values)? [duplicate]为什么该库同时包含 Stream.of(T t) 和 Stream.of(T... 值)? [复制]
【发布时间】:2016-08-15 23:10:32
【问题描述】:

由于方法

Stream.of(T... values)

包括单个元素的情况,为什么是方法:

Stream.of(T t)

也包含在 API 中?它的目的是什么?什么时候调用?它与可变参数版本有什么不同吗?

【问题讨论】:

标签: java java-8 java-stream


【解决方案1】:

它的目的是什么?

一个常见用例的效率小幅提升。

什么时候调用?

当你有一个论点时。

它与可变参数版本有什么不同吗?

结果是一样的,但它产生的垃圾更少。

【讨论】:

  • 这也解释了Stream.empty(),尽管它不像重载那样隐含地起作用。
  • @shmosel 和 empty() 在语义上比看起来像缺少的参数要清晰得多。
  • @chrylis Guava 不这么认为。
  • @chrylis 你仍然可以使用Stream.of(),但我同意empty() 是一个更清晰的选择。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
  • 2016-05-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-03
  • 2019-08-08
相关资源
最近更新 更多