如何在 Java 中实现命名参数习语? (特别是对于构造函数)
我正在寻找一种类似于 Objective-C 的语法,而不是 JavaBeans 中使用的语法。
一个小的代码示例就可以了。
原文由 Red Hyena 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何在 Java 中实现命名参数习语? (特别是对于构造函数)
我正在寻找一种类似于 Objective-C 的语法,而不是 JavaBeans 中使用的语法。
一个小的代码示例就可以了。
原文由 Red Hyena 发布,翻译遵循 CC BY-SA 4.0 许可协议
这是值得一提的:
Foo foo = new Foo() {{
color = red;
name = "Fred";
size = 42;
}};
所谓的 double-brace initializer 。它实际上是一个带有实例初始化器的匿名类。
原文由 irreputable 发布,翻译遵循 CC BY-SA 3.0 许可协议
15 回答8.2k 阅读
8 回答6k 阅读
1 回答4.1k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答3.2k 阅读
2 回答3.9k 阅读
1 回答2.2k 阅读✓ 已解决
我认为在构造函数中模拟关键字参数的最佳 Java 习惯用法是生成器模式,在 Effective Java 2nd Edition 中有所描述。
基本思想是拥有一个 Builder 类,该类具有用于不同构造函数参数的 setter(但通常不是 getter)。还有一个
build()
方法。 Builder 类通常是它用于构建的类的(静态)嵌套类。外部类的构造函数通常是私有的。最终结果类似于:
要创建 Foo 的实例,您可以编写如下内容:
主要注意事项是:
您可能还想查看 这篇博文(不是我写的)。