JAVA空指针异常Exception in thread "AWT-EventQueue-0"的解决方法
·
首先先来看看这个异常是什么样子的
这个异常Exception in thread "AWT-EventQueue-0"简单解释就是空指针异常。
在JAVA中,如果一个对象没有被实例化,就等于null。此时对其进行的操作都是违法的。也就是会发生上述异常。
此时先看看这个异常发生的位置,代码如下:
for(int i=0;i<shapes.length ; i++) {
shapes[i].draw(g);//错误发生位置
}
乍一看似乎没有什么问题,但是!看一看我之前对shapes数组的定义:
Shape[] shapes = new Shape[100];
这里我规定了shapes数组对象的长度为100,这时利用length函数获得的长度也为100。而这个数组中有相当一部分是null,这时如果调用draw画出这个对象存储的东西,就会发生空指针异常。
此时只需要在for循环的终止条件中加上一个判断是否为null的就好。
然而我运行之后又发生了空指针异常的错误。
这一段出现问题的代码是这样的
duobian.setData(x1, y1, x2, y2, shapeStr);
shapes[shapecount++] = duobian;
我依旧不知道问题在哪。。。。
但是如果我改成这样就对了
Shape s= new Shape();
s.setData(lastx, lasty, x2, y2, shapeStr);
shapes[shapecount++] = s;
在请教了老师之后,我发现我的错误在于,没有定义对象;
Shape duobian ;
在这种定义方式下,其实只是起了一个名字,并没有定义一个实际的对象。
改成下面这样就可以了
Shape duobian = new Shape();
更多推荐
已为社区贡献1条内容
所有评论(0)