gpt4 book ai didi

java - 在构建器类范例中处理空值等?

转载 作者:行者123 更新时间:2023-11-30 06:26:05 24 4
gpt4 key购买 nike

我有一个用于自定义类型的构建器类...并且我并不总是确定是否会存在某个值。

所以可以说我正在这样做:

MyCustomObject customObj = new MyCustomObject.MyCustomObjectBuilder()
.setValueA(valueA)
.setValueB(valueB)
.setValueC(valueC)
.setValueD(valueD)
.setValueE(valueE)
.build();

如果我的值是 null - 那么这显然会破坏,但我觉得在这个代码块中进行单独的 null 检查,否定了可重用构建器类的可读性和便利性......有没有办法来处理这个?

最佳答案

setValueX() 方法作为 MyCustomObjectBuilder 的实例方法进行调用。
因此,即使您提供 null 作为参数,也没关系。
由于这些方法中的每一个都必须返回 this 作为最后一条语句。
这就是构建器的工作方式。

例如:

public class MyCustomObject {

private MyCustomObject(){}
...
public static class MyCustomObjectBuilder {

public MyCustomObjectBuilder setValueA(A a){
... // do assignment or anything

// at the end
return this;
}

public MyCustomObjectBuilder setValueB(B b){
... // do assignment or anything

// at the end
return this;
}
...
}
}

当然,如果在setValueX()方法中,您引用了参数的成员,则必须先检查它是否不为null

关于java - 在构建器类范例中处理空值等?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47186615/

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