Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用
一、概述
在看Spring源码的时候,经常会发现有 @NonNull 或 @Nullable 注解的标记,一般是在方法上,或在 参数中,本着好奇的心里,研究下这2个注解的作用是什么呢?
二、代码理解
1、@NonNull: org.springframework.lang.NonNull
2、@Nullable: org.springframework.lang.Nullable
3、写一段代码测试,验证 NonNull 和 Nullable 注解是否有参数验证功能
-
@RunWith(SpringRunner.class)
-
@SpringBootTest
-
public
class
NullableSpringTest {
-
-
@Test
-
public
void
test
()
throws Exception{
-
say(
"小明",
"北京市");
-
say(
null,
null);
-
}
-
-
public
void
say
(@NonNull String name , @Nullable String addr){
-
System.out.println(
"@NonNull name ="+ name+
" ; @Nullable addr = " + addr);
-
}
-
}
4、执行完毕后,输出结果如下:
-
@NonNull name =小明 ;
@Nullable addr = 北京市
-
@NonNull name =
null ;
@Nullable addr =
null
三、总结
1、根据【二-4】中测试输出的结果可知: @NonNull 或 @Nullable , 没有参数验证功能,只是一个标记注解,告知调用方:是否允许为null的情况。
- @NonNull : 表示不能为null
- @Nullable : 表示允许为null
2、作用范围是: 方法上、参数、字段(类属性上)
-
@Target({ElementType.METHOD, ElementType.PARAMETER, ElementType.FIELD})
-
@Retention(RetentionPolicy.RUNTIME)
-
@Documented
-
@Nonnull(when = When.MAYBE)
-
@TypeQualifierNickname
-
public
@interface Nullable {
-
-
}
3、在阿里技术出品《Java工程师必读手册》 , 也提到过 @NonNull 和@Nullable 标注参数。
转载:https://blog.csdn.net/HaHa_Sir/article/details/127678161
查看评论