我正在使用 aStream.Builder并且我偶然发现这个接口同时具有方法accept(T t)和add(T t). 唯一的区别是前者返回void,后者返回 a Stream.Builder。
该文档甚至提到这些方法具有相同的默认实现:
默认实现的行为就像:
Run Code Online (Sandbox Code Playgroud)accept(t) return this;
请注意,他们忘记了分号,但那是另一回事了。
我的问题是:为什么他们有两种方法可以向流构建器添加内容?我认为这会使 API 变得混乱,我认为他们想避免这种情况。
有什么令人信服的理由这样做吗?
Con*_*ion 34
我猜:
Stream.BuilderextendsConsumer<T>因此它必须实现该accept(T)方法。
但是accept(T)返回void,所以我认为他们add(T)为了方便而添加:构建器模式实现中的方法通常返回this能够链接构建并最终调用build().
| 归档时间: |
|
| 查看次数: |
1180 次 |
| 最近记录: |