数组索引造成的空指针异常

Posted zmlgoes

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组索引造成的空指针异常相关的知识,希望对你有一定的参考价值。

技术图片

当你放在下面的时候,就会造成空指针异常,在第一遍循环的时候就在输出语句的这一行提示有空指针,这是什么原因呢,因为按照程序的顺序,z=0 ,可以进入循环,然后开始new h[0]这个对象,接着因为不满足两个

if条件句,所以往下走,这时候z就是等于0+1为1了,所以输出语句里面的是h[1].name,但是前面只有h[0](h[1]要在第二遍循环才会出现),所以就会出现找不到报错异常情况,要解决这个情况,则要做些许调整,

因为数组的索引是从0开始的,所以,你可以设定z的初始值为-1,因为while循环要+1的,这样子的话,那不是刚好为0,所以调整的地方为int z =-1;然后z=z+1放到while语句下面第一行。并且判断语句的要改为z<2.

还有一种解法是,只需把z=z+1;放到输出语句后面,这样不是就先输出再+1了,前后的索引就对得上了,就不会报错了。

还是要多注意运行程序的逻辑,还要要知道问题出在什么地方了,要把程序理一遍,你就知道出错在哪了,明白报错的意思,以及地方。

 

以上是关于数组索引造成的空指针异常的主要内容,如果未能解决你的问题,请参考以下文章

列表视图中的空指针异常?

在扩展数组适配器时自定义适配器的getView()中的空指针异常

为什么我得到一个对象数组的空指针异常? [重复]

全局变量被回收造成的空指针

越界异常和空指针异常

java hashmap空指针异常