游戏中的NullPointerException

时间:2013-01-18 23:56:47

标签: java nullpointerexception

我正在尝试用Java创建一个太空入侵者类型的游戏,但无法理解为什么游戏无法运行。这是错误

java.lang.NullPointerException
at UFO_Game.checkForHit(UFO_Game.java:131)
at UFO_Game.setup(UFO_Game.java:109)
at UFO_Game.run(UFO_Game.java:44)
at acm.program.Program.runHook(Program.java)
at acm.program.Program.startRun(Program.java)
at acm.program.Program.start(Program.java)
at sun.applet.AppletPanel.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

这是获取错误的代码。

public void checkForHit(){
    GObject CHECK = getElementAt(Bullet.getX(), Bullet.getY());
    if(CHECK == SHIP){
        removeAll();
    }

顺便说一下,我正在使用像斯坦福方法那样的ACM。

1 个答案:

答案 0 :(得分:3)

我认为BulletUFO_Game课程中的一个字段。它没有被赋予有效值(对象字段用null初始化)。当您尝试调用getX()时,会抛出NullPointerException。为避免这种情况,请在构造每个Bullet对象时初始化UFO_Game字段。

顺便说一句,Java中的方法和字段名称应以小写字母开头。任何熟悉Java的人都会将Bullet.getX()读作静态(类)方法的调用。