我想编写一个类,其中包含不止一种类型的多个字段,但是在任何时候,实例对象中只有一个字段具有非null值。
到目前为止,我所做的事情看起来并不十分干净。
class ExclusiveField {
private BigInteger numericParam;
private String stringParam;
private LocalDateTime dateParam;
public void setNumericParam(BigInteger numericParam) {
unsetAll();
this.numericParam = Objects.requireNonNull(numericParam);
}
public void setStringParam(String stringParam) {
unsetAll();
this.stringParam = Objects.requireNonNull(stringParam);
}
public void setDateParam(LocalDateTime dateParam) {
unsetAll();
this.dateParam = Objects.requireNonNull(dateParam);
}
private void unsetAll() {
this.numericParam = null;
this.stringParam = null;
this.dateParam = null;
}
}
Run Code Online (Sandbox Code Playgroud)
Java是否以某种方式支持此模式,或者有更合适的方法来实现?
java ×1