gpt4 book ai didi

java - Java 中的构建器模式

转载 作者:太空宇宙 更新时间:2023-11-04 06:37:43 25 4
gpt4 key购买 nike

如果我有一个使用构建器模式进行构造的类,因为大多数参数都是可选的,那么如何指定默认值?例如在下面的情况下,如果客户端仅使用必填项进行构建,但后来查询了可选项,会发生什么情况?

  public class BClass {
private final int compulsoryItem;
private final int optional1;
private final String optional2;

public int getCompulsoryItem() { return compulsoryItem; }
public int getOptional1() { return optional1; }
public int getOptional2() { return optional2; }

private BClass(Builder builder) {
this.compulsoryItem = builder.compulsoryitem;
this.optional1 = builder.optional1;
this.optional2 = builder.optional2;
}

public static class Builder {
private int compulsoryItem;
private int optional1;
private String optional2;

public Builder(int c) { this.compulsoryItem = c; }
public Builder opt1(int o1) { this.optional1 = o1; return this; }
public Builder opt2(String o2) { this.optional2 = o2; return this; }

public BClass build() { return new BClass(this); }
}


}

最佳答案

只需在 Builder 类中指定默认值即可。它们在构建器中不是最终的,因此可以重新分配。您无法在实际的 BClass 中设置默认值,因为所有字段都是最终的。

关于java - Java 中的构建器模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130510/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com