Java开发-空指针(NullPointException)
空指针NPE
Animal dog = new Animal();System.out.println(dog.getName().equals("tom"));
空指针异常在日常开发和学习中,是非常容易遇到的问题。由于代码编写不够谨慎或者不规范,就会遇到这种异常。其实最常见的就是在参数的传递或者试图get一个值时,set了一个null空对象,导致抛出了**NullPointException **
个人认为有意识的防止空指针异常是非常有必要的,即边界问题和减少系统异常的情况是非常有必要的。
“判空“
判断是否是空对象(null),是最好处理的办法,很简单,只要对象不空,自然就不会出现空指针异常了。
常用的方法
空对象
Objects.isNull();
空集合
CollectionUtils.isEmpty();new HashMap().isEmpty();new ArrayList().isEmpty();
空字符串
StringUtils.isEmpty();
手动if判断
if (null != object){//xxxx}else{//xxxx}
使用默认值
有时候可以采用使用默认值的方法,避免 NPE
对象属性有默认值
@Data
public class Animal {private String name = "";
}
如果为空,使用默认值
HashMap hashMap = new HashMap();hashMap.getOrDefault(dog.getName(),"");
Optional工具类
String name = Optional.ofNullable(dog.getName()).orElse("tom");
Java开发-空指针(NullPointException)相关推荐
- 《新版阿里巴巴Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?
最近,阿里巴巴Java开发手册发布了最新版--泰山版,这个名字起的不错,一览众山小. 新版新增了30+规约,其中有一条规约引起了作者的关注,那就是手册中提到在三目运算符使用过程中,需要注意自动拆箱导致 ...
- 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》
关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...
- 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验
阿里巴巴 Java 开发手册 一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: _name / __na ...
- Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发
接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...
- 阿里巴巴java开发手册学习
本文对阿里巴巴java开发手册中需要注意的点予以记录 1.编程规约 类名中包含领域模型如DO/BO/DTO/VO时要 全部大写,如UserDTO. 抽象类要以Abstract或Base开头,异常类以E ...
- 全新出击!《Java开发手册(嵩山版)》解读手册升级下载
简介:<〈Java开发手册(嵩山版)〉灵魂15问>重磅来袭!"一线大厂如何用Java"解读再升级,千万阅读量博主深究Java规约背后的原理.规范学好Java还不来看一看 ...
- 敬请期待!《Java开发手册》灵魂13问,深度剖析一线大厂开发思维
一线大厂怎么用Java? 看千万阅读量技术博主给你分析! <〈Java开发手册(泰山版)〉灵魂13问>电子书即将上线 带你剖析阿里巴巴一线团队开发思维 正式上线时间:2020年5月6日 8 ...
- Java开发手册——嵩山版(清幽现云山,虚静出内功)
终于找到了--阿里巴巴Java开发手册1.7.0(嵩山版) 前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业 ...
- java开发常用jar包_Java开发中常用jar包整理及使用
本文整理了我自己在Java开发中常用的jar包以及常用的API记录. 一.common-lang3 简介:一个现在最为常用的jar包,封装了许多常用的工具包 依赖: org.apache.common ...
最新文章
- BERT面向语言理解的深度双向变换预训练
- 用再生龙Clonezilla 来克隆Linux
- python operator 多属性排序_又碰到一个非常实用的模块,以后的各种运算就用它了,python内置的常用包。
- excel 科学计数法转换成文本完整显示_避免万次暴击,巧办法解决数字和文本之间的快速转化...
- 【NLP】Transformer的中年危机?
- linux下截取安卓手机屏幕,截取屏幕截图
- MS_DOS头部 IMAGE_DOS_HEADER
- 生成html_用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告
- 无人机小区上空盘一圈测体温,背后技术靠谱吗?
- Python源码剖析(四)字符串对象
- 阮一峰ES6入门读书笔记(十):Proxy
- 科赫雪花java_科赫雪花的Java递归实现
- android+反编译加广告,追书神器Android版,反编译去广告基本教程
- 【Linux集群教程】11 集群监控 - Zabbix 搭建
- pandas中DataFrame的常用操作
- 用计算机的画图工具画画,电脑绘画软件哪个好用?电脑绘画软件推荐
- 面向机密计算的Enclave容器技术栈
- C语言中i++==1是什么意思?
- 基于JavaWeb实现的城市公交查询系统
- 抢红包 html 模板,微信抢红包源码和模拟demo