在 Java 8 中添加 Stream.Builder.accept(T t) 方法有什么意义?

can*_*bar 0 java java-stream

void accept(T t)方法的目的是什么?它似乎与Stream.Builder<T> add(T t)方法除了返回 void 并且因此不能链接。不返回 Builder 对象是否更有效(似乎次要)?是否存在一些您不希望返回 Builder 的用例?

我在 JDK 文档中没有看到对这个决定的任何解释,也没有在 stackoverflow 上找到这个问题。如果我错过了一些明显的东西,请道歉。

Pro*_*man 6

请记住,此接口扩展了Consumer<T>接口。所以你必须有void accept(T t)方法。但是从“构建器”的角度来看,您希望通过流畅的界面使用该类。由于您一方面强制执行返回类型voidConsumer<T>接口),另一方面强制执行返回值this(流畅的接口样式),因此不可能同时使用相同的方法。所以你必须把它分成两种方法。