我有以下对象
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
public class SomeObject {
@Valid
@NotNull
private int someCount;
public int getSomeCount() {
return someCount;
}
public void setSomeCount(final int someCount) {
this.someCount = someCount;
}
public SomeObject(final int someCount) {
this.someCount = someCount;
}
}
但是我得到了
" someCount"被标记为" javax.validation.constraints.NotNull"但是 未在此构造函数中初始化。
并且它指向构造函数。我将一个项目传递给构造函数。我该如何解决这个
答案 0 :(得分:2)
这里有一个原始类型int
。它不能为空。相反,我会建议您使用@Min(0)
验证器。如果您确实需要将null作为值传入,则使用包装器Integer
代替。为此,您可以如上所述进行空检查。我不推荐这种方法。
答案 1 :(得分:0)
“ javax.validation.constraints.NotNull”,但未在此构造方法中初始化
我们最近在声纳构建中遇到了这个问题。
为解决此问题,我们在减速时初始化了非null字段。
请考虑以下代码。
public class Dummy {
@NotNull(message = "Dummy field cannot be null")
private Integer dummyField = -1; // Any default value
public Dummy(Integer dummyField) {
this.dummyField = dummyField;
}
public Integer getDummyField() {
return dummyField;
}
public void setDummyField(Integer dummyField) {
this.dummyField = dummyField;
}
}