对象标记为"javax.validation.constraints.NotNull",但未在此构造函数中初始化



>我有以下对象

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.constraint.NotNull",但是 未在此构造函数中初始化。

它指向构造函数。我正在将一个项目传递到构造函数中。我该如何解决这个问题

您在这里有一个基元类型int。它不能为空。相反,我建议您改用@Min(0)验证器。如果您确实需要将 null 作为值传入,请改用包装器Integer。为此,您可以进行如上所述的空检查。不过我不推荐这种方法。

"javax.validation.constraints.NotNull",但未在此构造函数中初始化

我们最近在声纳构建中遇到了这个问题。

为了解决此问题,我们在减速本身时初始化了非空字段。

请考虑以下代码。

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;
}

}

最新更新