IDEA不想使用javax的NotNull,而是使用org.jetbrains的NotNull。

5

我正在设置我的项目,当看到DTO中的@NotNull注释时:

Not 'javax.validation.constraints.NotNull' but 'org.jetbrains.annotations.NotNull' would be used for code generation

我已经导入了javax.validation.constraints.NotNull;

但是仍然看到这个警告。

为什么IDEA不想使用javax NotNull,我该怎么做才能强制它使用呢?

2个回答

6
当您编译项目时,IDE会向所有使用@NotNull注释的方法和参数添加断言。如果在期望@NotNull的代码中传递了null,则这些断言将失败。您可以禁用此选项并在“设置/首选项对话框Ctrl+Alt+S”中配置注释列表。转到“构建、执行、部署|编译器”。https://www.jetbrains.com/help/idea/nullable-and-notnull-annotations.html或许能解决问题。

这解释了如何消除错误,而不是为什么IntelliJ IDEA不想使用Javax的@NotNull版本。 - moffeltje
@moffeltje 嗯,这显然是IDE的一个特性。它可能会用自己的专有版本替换 @NotNull 注解,或者只是一个简单的命名空间污染问题。也许使用规范名称 @javax.validation.constraints.NotNull 进行注释也可以解决这个问题。如果你对为什么感兴趣,你可以查看社区版的GIT存储库并自行找出答案。但我怀疑你的时间投入会有意义的回报。 - maio290

0
除了maio290的回答外,重要的是您更改“用于代码生成的注解”设置:配置空值/非空注解对话框的屏幕截图

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接