从spring5开始新增了null-safety注解@NonNull
,@Nullable
,@NonNullFields
,@NonNullApi
,来防止出现运行时的空指针异常。
@NonNull
使用在字段,方法参数或方法的返回值。表示不能为空
@NonNullFields
使用在包级别,并且是该包下类的字段不能为空。
当一个类中的字段使用了太多的NonNull时可以考虑使用@NonNullFields注解,使用该注解必须先定义一个名为package-info.java
的文件,例如:
package-info.java
@NonNullApi
@NonNullFields
package org.springframework.mail;
import org.springframework.lang.NonNullApi;
import org.springframework.lang.NonNullFields;
@Nullable
使用在字段,方法参数或方法的返回值。表示可以为空。
当一个类的包被@NonNullFields
或@NonNullApi
注解,而我们想要从包级别指定的非null约束中免除某些字段,方法,返回值时可以使用@Nullable
@NonNullApi
和@NonNullFields
一样使用在包级别,但是区别是它作用是该包下的类的方法参数和返回值不能为空
当一个类中的方法参数和返回值使用了太多的NonNull时可以考虑使用@NonNullFields注解,使用该注解必须先定义一个名为package-info.java
的文件,形式同上。
注意:使用以上注解,你使用的ide必须支持该功能
网友评论