public class Pizza {
private int size;
private boolean cheese;
private boolean pepperoni;
private boolean bacon;
private Pizza(Builder builder) {
size = builder.size;
cheese = builder.cheese;
pepperoni = builder.pepperoni;
bacon = builder.bacon;
}
public static class Builder {
//required
private final int size;
//optional
private boolean cheese = false;
private boolean pepperoni = false;
private boolean bacon = false;
public Builder(int size) {
this.size = size;
}
public Builder cheese(boolean value) {
cheese = value;
return this;
}
public Builder pepperoni(boolean value) {
pepperoni = value;
return this;
}
public Builder bacon(boolean value) {
bacon = value;
return this;
}
public Pizza build() {
return new Pizza(this);
}
}
}
if(builder.size ==null){
throw new BadPizzaException("Eh, what're ya doin'?"+
" Pizza Size was not set correctly");
}else{
size=builder.size;
}
所以这就是我试过的。有更好的方法吗?
确保设置所有变量的一个有趣的模式是使用Step Builder模式,其中第一个设置器只允许设置第二个,第二个设置器只允许设置第三个,以此类推。当您进入最后一步时,您可以构建类,到那时您将知道所有方法都已被调用。
那篇文章的简短摘录:
Panino solePanino = PaninoStepBuilder.newBuilder()
.paninoCalled("sole panino")
.breadType("baguette")
.fish("sole")
.addVegetable("tomato")
.addVegetable("lettece")
.noMoreVegetablesPlease()
.build();
您必须从panino的名称开始,然后用bread类型跟踪它。
问题内容: 我需要能够构建go应用程序的不同版本;“调试”版本和普通版本。 这很容易做到;我只是有一个const DEBUG,它控制应用程序的行为,但是每次我需要在构建类型之间进行交换时,都必须编辑配置文件,这很烦人。 我正在阅读有关go build(http://golang.org/pkg/go/build/)和标签的信息,我想也许我可以这样做: config.go: config.debug
我的问题是,这是确保我在代码中使用的对象与json响应数据匹配的正确方法吗?它如何知道将_productSkuKey与我的接口中的productSkuKey映射?
问题内容: 我有一个包含单个模块和一些依赖项的项目。我想在一个包含编译模块的单独目录中创建一个jar。另外,我想在模块旁边提供依赖项。 无论我如何扭曲IntelliJ的“构建jar”过程,模块的输出都将显示为空(除了META-INF文件之外)。 问题答案: 这是使用IntelliJ 10构建jar的方法http://blogs.jetbrains.com/idea/2010/08/quickly-
我按照下一页上的说明将primefaces jar库转换为OSGi插件,并将其添加为OSGi捆绑包中必需的插件之一。http://www.vogella.com/tutorials/EclipseJarToPlugin/article.html#jar-files-without-osgi-meta-data 然而,当我部署OSGi捆绑包,我<有限公司 这是我得到的堆栈跟踪,以防错误是由于其他原因
我需要确保给定的 bean 是使用会话范围定义的。 我知道我可以使用或,其中是我的(Web)Application Context,但是,没有。 如果你想知道为什么我需要这样的东西,请检查这个问题。 相关:我可以以编程方式确定Spring bean是否不是单例吗?
说我有以下课程 和 当我调用超级构造函数时,如何保证子构造函数调用“正确”的构造函数?更具体地说,我希望100%确保我传入的三个字符串值确实设置为父级中的正确字段,而不是设置为item1 in的字段。 我知道我可以,例如: 显式创建我自己的所有参数构造函数 在子构造函数中,调用父构造函数的所有setter 但是我只是好奇Lombok是否足够聪明,以某种方式,将子类中的字段设置为父类中正确的字段?