gau*_*ain 4 java variadic-functions builder-pattern effective-java
我正在阅读Joshua Bloch的"Effective Java",在第2项中,他提到了在构造函数中处理几个参数时使用Builder模式的优点.一切都很好,直到我看到传统构造函数和这个模式之间的多个var-args差异.所以,我有一些疑问:
我在代码中没有使用var-args,但是我知道它们的用途.我仍然无法理解上述陈述背后的原因.任何帮助,将不胜感激.
没有方法签名(包括构造函数)允许多个varargs.只能有一个,它必须是最后一个参数.
这只是语言规范的一个限制.是的,如果你允许更多的灵活性,那么它的原因很可能是它变得模棱两可.
在构建器模式中,没有这样的限制,因为每个参数都可以获得自己的方法.
builder
.withOptions("a", "b", "c") // varargs
.withColors("red", "blue") // more varargs
.build();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
537 次 |
| 最近记录: |