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

Sha*_*hid 2 java spring-boot sonarqube struts2-jsr303-plugin

考虑下面的代码。当我分析声纳规则的代码时,它抱怨“javax.validation.constraints.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;
    }
}
Run Code Online (Sandbox Code Playgroud)

Ben*_*n M 6

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

public Dummy(@NotNull Integer dummyField) {
    this.dummyField = dummyField;
}
public void setDummyField(@NotNull Integer dummyField) {
    this.dummyField = dummyField;
}
Run Code Online (Sandbox Code Playgroud)

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