问题描述
我有下面的代码,在其中将文本字段标记为@NotNull
,并尝试通过将null
的值传递到该字段来创建对象。
我看不到验证有效。程序成功完成,文本值为null
请问我在这里想念的是什么,为什么在创建对象时没有抛出异常?
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.Setter;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@AllArgsConstructor
@Getter
@Setter
public class testInput {
private int id;
@Valid
@NotNull(message = "text not be null")
private String text;
public static void main(String args[]){
System.out.println("Starting");
testInput inp = new testInput(1,null);
System.out.println("Ending");
}
}
解决方法
您可以使用龙目岛的NonNull
。如果将 null 作为参数传递,它将抛出NullPointerException
,而不会将验证程序与您的代码关联。
import lombok.NonNull;
@NonNull
private String text;