使用 GObject 方法时从 Hashtable 获取 NullPointerException
所以我尝试创建一个小型僵尸射击游戏。我使用 ACM 包 (jtf.acm.org) 中的 GTurtle 类。我有一个 GTurtle 的附加线程,它是一个 GObject。我有一个带有 while 循环的 run 方法,即检查 boolean 是否为 true,如果是,则执行 this.forward() 方法。
我尝试运行游戏并按下按钮,如果是 W 或 D,GTurtle 对象中的布尔值会发生变化,并且线程执行操作。然后我得到这个异常:
java.lang.NullPointerException
at java.util.Hashtable.put(Hashtable.java:394)
at acm.util.JTFTools.pause(JTFTools.java)
at acm.util.Animator.delay(Animator.java)
at acm.graphics.GTurtle.setLocation(GTurtle.java)
at acm.graphics.GObject.move(GObject.java)
at acm.graphics.GTurtle.move(GTurtle.java)
at acm.graphics.GObject.movePolar(GObject.java)
at acm.graphics.GTurtle.forward(GTurtle.java)
at anotherTryJava.Player.run(Player.java:20)
at java.lang.Thread.run(Thread.java:662)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过源代码来判断
hashtable.put
您传递了键
参数null
或value
参数with参数> null
或两个null
。来自 Javadoc。
注意:我不知道您正在使用的JDK的版本(以下链接下面没有与您的版本匹配的行394 ),尽管推理仍然有效!
http://wwwww.docjar.com/html/api/api/java /util/hashtable.java.html
Judging by the source code for
Hashtable.put
you either passedkey
parameter withnull
orvalue
parameter withnull
or bothnull
.From Javadoc.
Note: I do not know the version of the JDK you are using (link below does not have a line 394 matching with your version), although the reasoning remains valid!
http://www.docjar.com/html/api/java/util/Hashtable.java.html