Java Lombok Bean验证

问题描述

我有下面的代码,在其中将文本字段标记@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;