手把手教你解决传说中的NPE空指针异常
1. 前言
最近有好几个初学java的小伙伴,甚至是学习到JavaWeb、框架阶段的小伙伴,跑来问健哥,该如何解决Java中的NullPointerException空指针异常。因为NPE是初学者常见的典型异常,所以健哥在这里专门写一篇文章,来手把手地教大家分析解决这个经典异常问题。
2. 异常现象
首先我们来看看这个既简单,又经常出现的空指针异常NullPointerException,下面这段代码运行后就会抛出NPE空指针异常。
运行结果:
3. 异常原因
那么上述代码为什么会产生NPE问题呢?下面健哥就来给各位小伙伴解释一下产生该异常的原因。
String str = "千锋健哥"; 字符串中此时的值为”千锋健哥“;
boolean flag = str.equals("千锋健哥"); 调用str字符串的equals方法进行字符串比较,此时str变量有具体的值,值为”千锋健哥“,所以可以正常调用;
str = null; 给str字符串设置为空值null,我们知道null没有任何方法可以调用;
所以代码当运行到 flag = str.equals("千锋健哥");这行代码的时候,就会抛出空指针异常,因为此时str变量的值是null。
4. 解决办法
既然我们现在找到了问题原因,那么我们很容易就能解决该问题了,解决思路如下:
当程序一旦抛出NullPointerException异常,肯定是因为某个变量的值为null,而你又引用了这个变量,null空值是没有任何方法可以调用的,所以抛出了这个异常;
明确原因之后,接着就要定位产生异常的位置,比如我们从上面的运行截图中,可以看到异常所在的代码行数为TestNullPoint类的第14行,报错如下:
也就是说在第14行代码中,有值为null的变量调用了方法,我们只需要找到那个变量将它的值改为非空即可。
修改后代码如下:
5. 总结
NullPointerException空指针异常是因为有变量的值为空null,然后我们在代码中又调用了这个变量的方法而导致的。我们只需要找到这个变量,然后将这个变量的值改为非空即可解决NPE异常。现在你知道NPE是怎么产生以及怎么解决的了吗?如果你还有什么问题,可以在评论区留言哦。
猜你喜欢LIKE
相关推荐HOT
更多>>article标签是什么元素?有什么作用
article标签是 HTML5 中的元素,用于定义一个独立的、完整的内容单元,通常包含文章、博客、新闻、评论等内容。增强可读性:使用 标签可以使页...详情>>
2023-04-20 16:19:55什么是linux系统内核?什么是linux发行版
Linux 是一个开源操作系统,由内核和许多其他的软件组成。其中,Linux 内核是操作系统的核心,负责管理计算机的硬件资源和提供基本的系统功能,...详情>>
2023-03-03 10:57:37数据埋点(Data buried point)的应用价值剖析
数据埋点指在应用中特定的流程中收集一些信息,用来跟踪应用使用的状况,后续用来进一步优化产品或是提供运营的数据支撑。比如访问数(Visits),...详情>>
2023-02-08 17:38:00web前端技术干货-iframe
在这个网页中,同时在一个页面中展示了三个网站:千锋教育官网、千锋教育HTML5大前端官网、千锋教育HTML5大前端好程序员官网。这是如何做到的呢...详情>>
2022-12-27 16:23:13热门推荐
java异常分类三大类是什么?
沸常用的maven打包命令有哪些?
热article标签是什么元素?有什么作用
热js引用数据类型有哪些
新什么是枚举?没有枚举之前怎么做的
javascript中如何搜索数组元素
css阴影效果属性:box-shadow属性
echarts和chart的优缺点对比
mybatis通用mapper的使用方法
ui设计之js效果-如何制作文字倒计时
svn与git的区别是什么?使用git的优势是什么
什么是linux系统内核?什么是linux发行版
Linux三剑客之-sed
JumpServer堡垒机部署及恢复