java异常如何是什么原因 java.lang.NullPointerException

来源:百度知道 编辑:UC知道 时间:2024/09/23 02:25:06
有如下异常Exception in thread "Thread-4" java.lang.NullPointerException

出现问题的代码段是
public void run() {
while(true){

moveDown();
listener.shapeMoveDown(Shape.this);
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}

}
}

  1. 报空指针,找不到  lang 包你定义的对象

  2. 看错误的行数, 应该是没接收到参数

空引用异常,查一下这段代码里面有哪个类的对象没有赋值就直接使用了。是listener吗?还有,你的Shape.this是什么意思。shape是个类,还是个对象。。。没见过这么用this的。。。参数要么就是this(指执行当前方法的对象),要么就是一个其他对象的引用

空指针错误
抛这种NullPointerException
说明你有变量没有初始化就使用啦,就是说没有new出来就使用啦
看看你有没有尚未初始化就使用的变量。

listener.shapeMoveDown(Shape.this);
应该是这句有问题,它接受的参数应该是个Shape类型的对象,除非Shape.this是你在Shape类里定义的一个静态变量,而且Shape.this已被初始化,否则shapeMoveDown接受的就是null,肯定会抛出NullPointerException。

这是空指针异常,比如String ss=a.getName();如果a不存在,就会报空指针异常,如果你确定是这个代码块出错,那可能是listener.shapeMoveDown(Shape.this)里的Shape.this不存在

Shape.this 指的是什么呢? 问题应该就出在这里 你检查一下吧,我不明白你的Shape.this是什么意思,你仔细检查一下吧。