Java用注解做参数校验

JSR 303 Bean Validation

javax.validation.constraints

  • NotNull
  • NotEmpty
  • NotBlank

常用 Hibernate Validator 实现, 在 controller 层用 @Validated 开启, 在运行时校验不通过则报错

JSR 305 Annotations for Software Defect Detection

org.springframework.lang

  • NonNull
  • Nullable

提供给ide做判断提示, 在运行时不起作用

Jetbrains 家的注解

涵盖了 JSR 305 的规范, 还有额外的 @Contract @TestOnly 等

官网英文文档
(Jetbrains 家的文档是真的好)

中文文档(不)

几个常识

JCP

Java Community Process, 由Sun创建, 用来发展和更新Java技术规范, 参考实现(RI), 技术兼容包(TCK)

JSR

Java Specification Requests, JCP 成员向委员会提交的 Java 发展议案,经过一系列流程后,如果通过会成为 JEP

JEP

JDK Enhancement Proposals, JDK的版本变化将从这些提案中选取

参考资料

JAVA中@NotNull和@Nonnull有什么区别? - 开源中国

JDK 版本变化 - 简书