Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用
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 {@Testpublic 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 标注参数。
Spring注解@NonNull作用 Spring注解@Nullable作用 Spring NonNull 注解作用 Spring Nullable注解作用相关推荐
- Spring(一)--作用、IOC容器细节、搭配环境、Spring实验
1.Spring作用: 1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!] 2.将其他组件粘合在一起 比如将S ...
- Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用
前置知识: 在Spring Cache缓存中有两大组件CacheManager和Cache.在整个缓存中可以有多个CacheManager,他们负责管理他们里边的Cache.一个CacheManage ...
- 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解
写在前面 最近,二狗子入职了新公司,新入职的那几天确实有点飘.不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究A ...
- spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式
spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式 在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid" ...
- spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder、@ModelAttribute的作用
spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder.@ModelAttribute的作用 参考文章: (1)spring boot 全局异常处 ...
- JavaSSM笔记(一)Spring基础(JavaBean)(IoC理论)(AOP)(使用注解开发)
在JavaWeb阶段,我们已经学习了如何使用Java进行Web应用程序开发,我们现在已经具有搭建Web网站的能力,但是,我们在开发的过程中,发现存在诸多的不便,在最后的图书管理系统编程实战中,我们发现 ...
- 关于Spring底层原理面试的那些问题,你是不是真的懂Spring?
转载自 关于Spring底层原理面试的那些问题,你是不是真的懂Spring? 1.什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发 ...
- spring 处理带有特殊字符的请求_程序员笔记|常见的Spring异常分析及处理
[技术沙龙002期]数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名 一.前言 相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行 ...
- java基础巩固-宇宙第一AiYWM:为了维持生计,Spring全家桶_Part1-1(Spring左膀右臂中的左膀IOC第一篇~全是概念,Spring为啥辣么6)~整起
我Java学的好好的,为什么要学spring框架呀[一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合]?或者说,成天喊简化开发,spring是如何简化开发的?或 ...
- @RequestBody注解失效?从前端传来的数据到底需不需要@RequestBody注解?前端传输数据解析的问题?
@RequestBody注解失效?从前端传来的数据到底需不需要@RequestBody注解? 又是在日常的从Mybatis升级Mybatis-Plus的过程中,我又发现了问题:怎么从前端传来的数据没有 ...
最新文章
- 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)
- mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?
- LInux之建立文件和目录
- 天马微电子的mes工程师_上海天马微电子MES工程师职位(部门:制造中心/自动化部)怎么样?...
- aws cloud map_销毁AWS资源:Cloud-Nuke还是AWS-Nuke?
- 代写python代码一般多少钱_代写CO 353课程作业、代做Python程序设计作业、代写Python语言作业...
- Python装饰器详解,详细介绍它的应用场景
- 苹果又想出涨价新招,iPhone 12将标配AirPods耳机?
- LeetCode 面试题 08.01. 三步问题 (动态规划)
- 浅谈C++物理设计:实用宏
- 2款免费的图片压缩工具
- 2019常用的几种编程语言的简单介绍和特点以及应用领域
- win7录屏_专业电脑录屏方法有哪些?分享录屏靠谱方法!
- java 操作 led_Java中使用反射机制操作LED
- C# 经纬度格式化输入控件的简单实现(附html、Qt实现)
- 谷歌play支付_Google Play的新功能
- 超级好看的动态官网源码
- 学习笔记——C语言打印日志封装
- iOS——自定义cell
- 植物神经紊乱的影响,你知道有哪些吗?