空指针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)相关推荐

  1. 《新版阿里巴巴Java开发手册》提到的三目运算符的空指针问题到底是个怎么回事?

    最近,阿里巴巴Java开发手册发布了最新版--泰山版,这个名字起的不错,一览众山小. 新版新增了30+规约,其中有一条规约引起了作者的关注,那就是手册中提到在三目运算符使用过程中,需要注意自动拆箱导致 ...

  2. 关于接口使用抛异常还是返回错误码,下列哪些说法符合《阿里巴巴Java开发手册》

    关于接口使用抛异常还是返回错误码,下列哪些说法符合<阿里巴巴Java开发手册>:答案在文末 A. 向公司外部提供的http/api接口,推荐使用"错误码"方式返回异常或 ...

  3. 阿里巴巴 Java 开发手册之编程规约(一)-------我的经验

    阿里巴巴 Java 开发手册 一.编程规约 (一) 命名规约 1.[强制] 代码中的命名均不能以下划线或美元符号开始,也不能以下划线或美元符号结束.(代码规范,易读) 反例: _name / __na ...

  4. Java开发微信公众号(二)---开启开发者模式,接入微信公众平台开发

    接入微信公众平台开发,开发者需要按照如下步骤完成: 1.填写服务器配置 2.验证服务器地址的有效性 3.依据接口文档实现业务逻辑 资料准备: 1.一个可以访问的外网,即80的访问端口,因为微信公众号接 ...

  5. 阿里巴巴java开发手册学习

    本文对阿里巴巴java开发手册中需要注意的点予以记录 1.编程规约 类名中包含领域模型如DO/BO/DTO/VO时要 全部大写,如UserDTO. 抽象类要以Abstract或Base开头,异常类以E ...

  6. 全新出击!《Java开发手册(嵩山版)》解读手册升级下载

    简介:<〈Java开发手册(嵩山版)〉灵魂15问>重磅来袭!"一线大厂如何用Java"解读再升级,千万阅读量博主深究Java规约背后的原理.规范学好Java还不来看一看 ...

  7. 敬请期待!《Java开发手册》灵魂13问,深度剖析一线大厂开发思维

    一线大厂怎么用Java? 看千万阅读量技术博主给你分析! <〈Java开发手册(泰山版)〉灵魂13问>电子书即将上线 带你剖析阿里巴巴一线团队开发思维 正式上线时间:2020年5月6日 8 ...

  8. Java开发手册——嵩山版(清幽现云山,虚静出内功)

    终于找到了--阿里巴巴Java开发手册1.7.0(嵩山版) 前言 <Java 开发手册>是阿里巴巴集团技术团队的集体智慧结晶和经验总结,经历了多次大规模一 线实战的检验及不断完善,公开到业 ...

  9. java开发常用jar包_Java开发中常用jar包整理及使用

    本文整理了我自己在Java开发中常用的jar包以及常用的API记录. 一.common-lang3 简介:一个现在最为常用的jar包,封装了许多常用的工具包 依赖: org.apache.common ...

最新文章

  1. BERT面向语言理解的深度双向变换预训练
  2. 用再生龙Clonezilla 来克隆Linux
  3. python operator 多属性排序_又碰到一个非常实用的模块,以后的各种运算就用它了,python内置的常用包。
  4. excel 科学计数法转换成文本完整显示_避免万次暴击,巧办法解决数字和文本之间的快速转化...
  5. 【NLP】Transformer的中年危机?
  6. linux下截取安卓手机屏幕,截取屏幕截图
  7. MS_DOS头部 IMAGE_DOS_HEADER
  8. 生成html_用 Pytest+Allure 生成漂亮的 HTML 图形化测试报告
  9. 无人机小区上空盘一圈测体温,背后技术靠谱吗?
  10. Python源码剖析(四)字符串对象
  11. 阮一峰ES6入门读书笔记(十):Proxy
  12. 科赫雪花java_科赫雪花的Java递归实现
  13. android+反编译加广告,追书神器Android版,反编译去广告基本教程
  14. 【Linux集群教程】11 集群监控 - Zabbix 搭建
  15. pandas中DataFrame的常用操作
  16. 用计算机的画图工具画画,电脑绘画软件哪个好用?电脑绘画软件推荐
  17. 面向机密计算的Enclave容器技术栈
  18. C语言中i++==1是什么意思?
  19. 基于JavaWeb实现的城市公交查询系统
  20. 抢红包 html 模板,微信抢红包源码和模拟demo

热门文章

  1. 为什么现在的视频都会加入自动字幕功能?
  2. BlockingQueue 使用
  3. timeit.Timer()与timeit.timeit()
  4. execjs调用第三方js库
  5. 用delphi编写医院的复杂报表
  6. Java一维数组和二维数组的长度
  7. 大数据数仓建模(3)
  8. 淘宝网店装修教程模版素材链接
  9. 一个无损连接和保持函数依赖性的3nf分解
  10. 全网最全的 Notion 类软件盘点