千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:武汉千锋IT培训  >  技术干货  >  手把手教你解决传说中的NPE空指针异常

手把手教你解决传说中的NPE空指针异常

来源:千锋教育
发布人:qyf
时间: 2022-12-23 17:04:26

  1. 前言

  最近有好几个初学java的小伙伴,甚至是学习到JavaWeb、框架阶段的小伙伴,跑来问健哥,该如何解决Java中的NullPointerException空指针异常。因为NPE是初学者常见的典型异常,所以健哥在这里专门写一篇文章,来手把手地教大家分析解决这个经典异常问题。

  2. 异常现象

  首先我们来看看这个既简单,又经常出现的空指针异常NullPointerException,下面这段代码运行后就会抛出NPE空指针异常。

0

  运行结果:

01

  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行,报错如下:

02

  也就是说在第14行代码中,有值为null的变量调用了方法,我们只需要找到那个变量将它的值改为非空即可。

03

  修改后代码如下:

04

  5. 总结

  NullPointerException空指针异常是因为有变量的值为空null,然后我们在代码中又调用了这个变量的方法而导致的。我们只需要找到这个变量,然后将这个变量的值改为非空即可解决NPE异常。现在你知道NPE是怎么产生以及怎么解决的了吗?如果你还有什么问题,可以在评论区留言哦。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

javascript中如何搜索数组元素

2023-03-17

ui设计之js效果-如何制作文字倒计时

2023-03-06

svn与git的区别是什么?使用git的优势是什么

2023-03-03

最新文章NEW

java异常分类三大类是什么?

2023-06-06

什么是枚举?没有枚举之前怎么做的

2023-03-17

echarts和chart的优缺点对比

2023-03-09

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>