我似乎最喜欢在构造函数中模拟关键字参数的Java惯用语是Builder模式,有效Java 2nd
Edition中
对此进行了描述。
基本思想是拥有一个Builder类,该类具有用于不同构造函数参数的setter(但通常没有getter)。还有一种build()
方法。Builder类通常是用于构建的类的(静态)嵌套类。外部类的构造函数通常是私有的。
最终结果如下所示:
public class Foo {
public static class Builder {
public Foo build() {
return new Foo(this);
}
public Builder setSize(int size) {
this.size = size;
return this;
}
public Builder setColor(Color color) {
this.color = color;
return this;
}
public Builder setName(String name) {
this.name = name;
return this;
}
// you can set defaults for these here
private int size;
private Color color;
private String name;
}
public static Builder builder() {
return new Builder();
}
private Foo(Builder builder) {
size = builder.size;
color = builder.color;
name = builder.name;
}
private final int size;
private final Color color;
private final String name;
// The rest of Foo goes here...
}
要创建Foo的实例,您可以编写以下内容:
Foo foo = Foo.builder()
.setColor(red)
.setName("Fred")
.setSize(42)
.build();
主要警告如下:
您可能还想查看此博客文章(不是我的)。
问题内容: 是否有一个名为JDBC中,而不是那些位置参数,比如在下面的查询? 问题答案: JDBC不支持命名参数。除非你必须使用普通的JDBC(这会造成麻烦,让我告诉你),否则我建议使用Springs Excellent JDBCTemplate,它可以在没有整个IoC容器的情况下使用。 NamedParameterJDBCTemplate支持命名参数,你可以像这样使用它们:
本文向大家介绍Lua 命名参数,包括了Lua 命名参数的使用技巧和注意事项,需要的朋友参考一下 示例
在代码中我发现: 类雇员不是我们的类,可能从wsdl文件生成,其中参数(年龄和地点)被称为,,所以有人试图命名null参数以知道哪个是哪个,但这是好的做法吗?另一个问题是,和被翻译,而其他两个参数只是,但除此之外,创建带有值的变量只是为了将其传递到构造函数的下一行,可以吗?
您可以传递命名参数以及相关值。 语法 (Syntax) export default Ember.Helper.helper(function([value],namedArgs) { //code here }); 例子 (Example) 下面给出的示例将命名参数以及相关值传递给帮助程序。 创建两个helper作为namedarguments和namedarguments1 。 打开在
问题内容: 在PHP 4/5中是否可以在调用时指定一个命名的可选参数,从而跳过您不想指定的参数(例如在python中)? 就像是: 谢谢 问题答案: 不,这是不可能的:如果要传递第三个参数,则必须传递第二个参数。并且命名参数也不可能。 一种“解决方案”是只使用一个参数,一个数组并始终传递它……但不要总是在其中定义所有内容。 例如 : 并这样称呼: 将获得以下输出: 但是我真的不喜欢这个解决方案:
本文向大家介绍PowerShell中对函数参数的命名建议,包括了PowerShell中对函数参数的命名建议的使用技巧和注意事项,需要的朋友参考一下 PowerShell自定义函数的参数没有具体的命名规则,那么怎么做才能让参数的命名更加科学可持续。 我们应该怎么来命名函数的参数名称呢?有没有一个可供参考的列表?当然微软没有给出来。但是我们可以来理一个列表出来。微软自带了大量的cmdlet,这些cmd