@NonNull系列注解,优雅解决令人发指的判空
前言
写代码判空经常让人头疼,通常能写到手疼,代码中经常充斥着各种判空,影响代码美观。因此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
- Lombok特性
@NonNull系列注解,优雅解决令人发指的判空相关推荐
- 注解 @RequiredArgsConstructor与@NonNull系列注解的用法:
一.@RequiredArgsConstructor使用解释: 导入lombok包:<dependency><groupId>org.projectlombok</gro ...
- 在 Java 中如何优雅地判空
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 李良逸 来源 | blog.imuxuan.c ...
- 如何判断map为空_Java到底如何更优雅地判空
Java面试笔试面经.Java技术每天学习一点 Java面试 关注不迷路 作者:李良逸 来源:http://blog.imuxuan.com/ 判空灾难 作为搬砖党的一族们,我们对判空一定再熟悉不过了 ...
- 【Java 8系列】Java开发者的判空利器 -- Optional
热门系列: [Java 8系列]收集器Collector与工具类Collectors [Java 8系列]Stream详解,看这一篇就够啦 [Java 8系列]Lambda 表达式,一看就废 [Jav ...
- Java 优雅判空的方法
为了避免 NullPointerException 出现,我们经常会进行如下操作. if (object != null) {object.do(); } 那么每次使用一个不确定的对象,都需要进行一次 ...
- 如何判断map为空_在Java中如何优雅地判空
来自:李良逸 链接:http://blog.imuxuan.com/archives/86 判空灾难 作为搬砖党的一族们,我们对判空一定再熟悉不过了,不要跟我说你很少进行判空,除非你喜欢 NullPo ...
- 详解Spring Boot框架中的@Conditional系列注解
目录 1. @Conditional 注解 2. Spring boot 扩展 1) @ConditionalOnClass和@ConditionalOnMissingClass注解 2) @Cond ...
- SpringMVC注解@initbinder解决类型转换问题
SpringMVC注解@initbinder解决类型转换问题 参考文章: (1)SpringMVC注解@initbinder解决类型转换问题 (2)https://www.cnblogs.com/an ...
- 注解@Async解决异步调用问题
注解@Async解决异步调用问题 参考文章: (1)注解@Async解决异步调用问题 (2)https://www.cnblogs.com/mmzs/p/11557583.html 备忘一下.
最新文章
- 报名 | Sven Travis教授设计与人工智能思享会
- 学习python需要什么基础-学习Python需要哪些基础知识?
- 设计模式:控制反转(Inversion Of Control)
- 这个图形的体积有限,但表面积却是无穷大
- Fedora 与 Ubuntu 深度比较
- java客户端连接请求发不出去_java – Spring:客户端发送的请求在语法上不正确()...
- 【SpringCloud】Spring cloud Alibaba Sentinel 规则持久化
- 小米6android版本更新,小米6正式迎来了安卓9.0稳定版升级,一代神机继续创造辉煌...
- Java中String的用法
- [Flutter] 一些面试可能会问基础知识
- 传智播客 机器学习和深度学习之 Scikit-learn与特征工程 学习笔记
- shl归纳推理测试题库_笔经总结含征服shl功略
- 软件测试分为哪几个阶段?
- JDk1.8(Win 10版 64位)安装、环境变量配置及第一个Java程序
- 工具 | 超实用工具listary和snipaste
- 工程师思维 vs 销售思维
- 肠道-甲状腺轴如何影响健康
- opencv学习-011-图像像素归一化(normalize)
- H5打造属于自己的视频播放器(JS篇1)
- csv文件导入后台乱码_Excel打开csv文件出现乱码的解决方法
热门文章
- OSG for Android新手教程系列(四)——JNI与NDK的使用
- Golang 生成压缩包
- 北汽新能源eu5/ex3/ex5系列免登录
- vue cli 版本更改
- 深入理解NLP Subword算法:BPE、WordPiece、ULM
- OpenCv图像处理实战——文档扫描
- 插画|曼奇立德《商业运营插画》学员“安利25周年”实战作品
- Springboot整合Quartz任务框架
- 6月22服务器维护吃鸡,绝地求生6月22日更新了什么 绝地求生6.22吃鸡更新内容汇总...
- vue table v-for v-for其他用法