小编Hie*_*uHT的帖子

什么是在对象中仅允许一个非null字段的好方法

我想编写一个类,其中包含不止一种类型的多个字段,但是在任何时候,实例对象中只有一个字段具有非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

33
推荐指数
3
解决办法
3042
查看次数

标签 统计

java ×1