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