Spring 5中的@Nullable用@Nonnull注释

时间:2018-07-01 09:11:55

标签: spring nullable

我刚刚更新了项目,将build.gradleSpring Boot 2.0.3一起使用。

现在我看到Spring Framework 5.0.7方法中的某些参数已用Spring闪亮的新MessageSource注释进行了注释。但是由于有此注释,IDEA 14表示适当的参数不能为@Nullable SURPRISE!)。

据我了解,这是因为null带有@Nullable的注释:

@Nonnull

用逻辑上相反的标记标记注释的原因是什么?

1 个答案:

答案 0 :(得分:0)

正如@StephanHerrmann所解释的,它与原始JSR有关。 因此,我们的想法是在某些情况下允许使用null值-只是为了使代码能够自我记录。 javax.annotation.Nullable中实际上使用了类似的方法:

@Documented
@TypeQualifierNickname
@Nonnull(when = When.UNKNOWN)
@Retention(RetentionPolicy.RUNTIME)
public @interface Nullable {

}

在最新的IDEA版本中,out of the box支持(或将支持此注释)。 要修复旧版本中的IDEA警告,您只需add the Spring's annotation manually