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

时间:2018-08-08 18:33:49

标签: java spring-boot sonarqube struts2-jsr303-plugin

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

我可以通过使用默认值(see example here)初始化字段来解决此问题,但是它将使@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;
    }
}

1 个答案:

答案 0 :(得分:2)

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

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

如果您确认该值的所有可能的变异子都仅将其设置为非null值,则与声明该值本身必须为非null的效果相同-但避免虚假的警告