猿问

@NotNull 什么时候会抛出异常?

我在 POJO 之一中使用 javax.validation.constraints.NotNull 如下:


public class Abc {


@NotNull

private final String x;


@NotNull

private final String y;

}

然后,即使我为两个字段都设置了空值的 Abc 对象,它也不会引发任何异常。知道为什么吗?


例如。


Abc abc = new Abc(null, null);

不会抛出任何异常。


白衣非少年
浏览 307回答 3
3回答

30秒到达战场

注释只是附加在它们注释的项目上的额外信息;它们本身没有内置逻辑。如果您使用Lombok或 Kotlin 语言之类的工具,编译器可能支持根据注释自动添加逻辑,但除此之外,它们不会“做任何事情”,直到您实际进行主动检查(例如,通过运行您的POJO 通过验证器)。

GCT1015

对于注释 Spring 需要类的代理的实现,因此您可以实现异常行为,以防您将 Spring bean 注入某些类并调用 Spring 代理注入的方法,这样将抛出异常并且不会忘记你的组件应该被注释为@Validated

白猪掌柜的

也许这个来自类似问题的答案可以帮助你。要激活参数验证,只需使用 @Validated 注释类
随时随地看视频慕课网APP

相关分类

Java
我要回答