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注解作用相关推荐

  1. Spring(一)--作用、IOC容器细节、搭配环境、Spring实验

    1.Spring作用:      1.生态体系庞大,全能型选手![springmvc是其一个子模块,jdbcTemplate能直接操作数据库!]      2.将其他组件粘合在一起      比如将S ...

  2. Spring Cache缓存技术,Cacheable、CachePut、CacheEvict、Caching、CacheConfig注解的使用

    前置知识: 在Spring Cache缓存中有两大组件CacheManager和Cache.在整个缓存中可以有多个CacheManager,他们负责管理他们里边的Cache.一个CacheManage ...

  3. 【Spring注解驱动开发】二狗子让我给他讲讲@EnableAspectJAutoProxy注解

    写在前面 最近,二狗子入职了新公司,新入职的那几天确实有点飘.不过慢慢的,他发现他身边的人各个身怀绝技啊,有Spring源码的贡献者,有Dubbo源码的贡献者,有MyBatis源码的贡献者,还有研究A ...

  4. spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式

    spring -mvc 将对象封装json返回时删除掉对象中的属性注解方式   在类名,接口头上注解使用在 @JsonIgnoreProperties(value={"comid" ...

  5. spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder、@ModelAttribute的作用

    spring boot 全局异常处理的实现(@ExceptionHandler),以及@InitBinder.@ModelAttribute的作用 参考文章: (1)spring boot 全局异常处 ...

  6. JavaSSM笔记(一)Spring基础(JavaBean)(IoC理论)(AOP)(使用注解开发)

    在JavaWeb阶段,我们已经学习了如何使用Java进行Web应用程序开发,我们现在已经具有搭建Web网站的能力,但是,我们在开发的过程中,发现存在诸多的不便,在最后的图书管理系统编程实战中,我们发现 ...

  7. 关于Spring底层原理面试的那些问题,你是不是真的懂Spring?

    转载自  关于Spring底层原理面试的那些问题,你是不是真的懂Spring? 1.什么是 Spring 框架?Spring 框架有哪些主要模块? Spring 框架是一个为 Java 应用程序的开发 ...

  8. spring 处理带有特殊字符的请求_程序员笔记|常见的Spring异常分析及处理

    [技术沙龙002期]数据中台:宜信敏捷数据中台建设实践|宜信技术沙龙 将于5月23日晚8点线上直播,点击报名 一.前言 相信我们每个人在SpringMVC开发中,都遇到这样的问题:当我们的代码正常运行 ...

  9. java基础巩固-宇宙第一AiYWM:为了维持生计,Spring全家桶_Part1-1(Spring左膀右臂中的左膀IOC第一篇~全是概念,Spring为啥辣么6)~整起

    我Java学的好好的,为什么要学spring框架呀[一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合]?或者说,成天喊简化开发,spring是如何简化开发的?或 ...

  10. @RequestBody注解失效?从前端传来的数据到底需不需要@RequestBody注解?前端传输数据解析的问题?

    @RequestBody注解失效?从前端传来的数据到底需不需要@RequestBody注解? 又是在日常的从Mybatis升级Mybatis-Plus的过程中,我又发现了问题:怎么从前端传来的数据没有 ...

最新文章

  1. 一个KVO 实现WKWebView加载进度条的例子 (注意最后移除观察者)
  2. mysql的in查询参数限制,多少数据量会造成性能下降?什么时候创建临时表合适?
  3. LInux之建立文件和目录
  4. 天马微电子的mes工程师_上海天马微电子MES工程师职位(部门:制造中心/自动化部)怎么样?...
  5. aws cloud map_销毁AWS资源:Cloud-Nuke还是AWS-Nuke?
  6. 代写python代码一般多少钱_代写CO 353课程作业、代做Python程序设计作业、代写Python语言作业...
  7. Python装饰器详解,详细介绍它的应用场景
  8. 苹果又想出涨价新招,iPhone 12将标配AirPods耳机?
  9. LeetCode 面试题 08.01. 三步问题 (动态规划)
  10. 浅谈C++物理设计:实用宏
  11. 2款免费的图片压缩工具
  12. 2019常用的几种编程语言的简单介绍和特点以及应用领域
  13. win7录屏_专业电脑录屏方法有哪些?分享录屏靠谱方法!
  14. java 操作 led_Java中使用反射机制操作LED
  15. C# 经纬度格式化输入控件的简单实现(附html、Qt实现)
  16. 谷歌play支付_Google Play的新功能
  17. 超级好看的动态官网源码
  18. 学习笔记——C语言打印日志封装
  19. iOS——自定义cell
  20. 植物神经紊乱的影响,你知道有哪些吗?

热门文章

  1. python3数字学习
  2. Subword三大算法原理:BPE、WordPiece、ULM
  3. 韩立刚计算机网络笔记-第06章 动态路由和静态路由
  4. 粉红噪声matlab产生
  5. python-生成器和迭代器
  6. 未来图灵发布《AI明星企业家热搜榜》
  7. 浅学PolSARPro软件
  8. 【MAC苹果解决】软件字体和下载问题611308722文件
  9. 小程序开发API之网络请求wx.reques、RequestTask网络请求任务对象及监听取消网络请求
  10. 人工智能基础课(图文版)(持续更新,建议收藏)