为什么库包含Stream.of(T t)和Stream.of(T ...值)?

kou*_*sen 1 java java-8 java-stream

自从这个方法

Stream.of(T... values)
Run Code Online (Sandbox Code Playgroud)

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

Stream.of(T t)
Run Code Online (Sandbox Code Playgroud)

还包括在API中?它的目的是什么?什么时候被调用?它与varargs版本有什么不同吗?

Pet*_*rey 7

它的目的是什么?

常见用例的效率略有提高.

什么时候被调用?

当你有一个论点.

它与varargs版本有什么不同吗?

出来是一样的,但它产生的垃圾更少.

  • @shmosel和`empty()`在语义上比看起来像缺少的参数更清晰. (3认同)
  • @chrylis你仍然可以使用`Stream.of()`但我同意`empty()`是一个更清晰的选择. (2认同)