处理SonarQube错误"javax.validation.constraints.NotNull"的最佳方法是什么



请考虑以下代码。当我分析声纳规则的代码时,它抱怨"javax.validation.constraint.NotNull",但未在此构造函数中初始化

我可以通过使用默认值初始化字段来解决它(请参阅此处的示例(,但它会使注释变得多余@NotNull。所以我的问题是如何以最好的方式解决这个问题。

public class Dummy {
    @NotNull(message = "Dummy field cannot be null")
    private Integer dummyField;
    public Dummy(Integer dummyField) {
        this.dummyField = dummyField;
    }
    public Integer getDummyField() {
        return dummyField;
    }
    public void setDummyField(Integer dummyField) {
        this.dummyField = dummyField;
    }
}

您应该将@NotNull注释移动到构造函数和 setter 参数:

public Dummy(@NotNull Integer dummyField) {
    this.dummyField = dummyField;
}
public void setDummyField(@NotNull Integer dummyField) {
    this.dummyField = dummyField;
}

如果您验证该值的所有可能的突变器仅将其设置为非 null 值,则与声明值本身必须是非 null 的效果相同 - 但避免虚假警告

相关内容

最新更新