写代码判空经常让人头疼,通常能写到手疼,代码中经常充斥着各种判空,影响代码美观。因此java 提出了 jsr-305 提供了前面问题的解决方案。业界有很多实现。下面介绍两个经常用到的实现及其示例。
Spring core位于org.springframework.lang 包下,SpingBoot 项目中可直接使用。
- @NonNull 指示目标对象不能为 null,用于注解方法,参数以及变量;
- @NonNullApi 指定参数和方法返回值默认不能为 null,用于包(Package)级别注解;
- @NonNullFields 指示变量不能为 null,用于包(Package)级别注解;
- @Nullable 指定目标对象可以为 null,可用于注解方法,参数以及变量 。若是与 @NonNullApi 和 @NonNullFields 共用,会被覆盖;
Lombok 的实现与 Spring core 异曲同工,此处不再详细介绍,常用的是 @NonNull ,详情参考其官网 @NonNull
- Lombok特性



