我想知道是否有人可以帮助我理解这段代码可能出问题的地方;基本上我正在编写一个教程并从另一个类调用下面的类 - 它收到以下错误;
线程“Thread-1”中的异常 java.lang.NullPointerException 在 org.newdawn.spaceinvaders.TCPChat.run(TCPChat.java:322) 在 java.lang.Thread.run(来源不明)
我意识到错误在另一个类中被标记 - 但我已经用一个小类测试了另一个类,该类设置了一个单独的线程 - 它工作正常,但是一旦我尝试在这个类中实现一个新线程类 - 它会导致各种各样的问题。我在这个类中正确设置了线程吗?
基本上,我可以在此类中设置一个线程,并带有测试循环,这很好,但是当我引入游戏其余部分的功能时,它有时会挂起,或者根本不显示。
任何关于我可能出错的地方的建议将不胜感激。
感谢您的浏览。
最佳答案
java.lang.NullPointerException at org.newdawn.spaceinvaders.TCPChat.run(TCPChat.java:322)
打开 TCPChat.java 源文件,查看第 322 行并查看此特定行,其中使用点运算符 .
来访问某些对象引用。像这样的东西:
someObject.doSomething();
此行中的 NullPointerException
表示 someObject
为 null
。您无法访问或调用任何内容。要解决这样的问题,您只需确保此时 someObject
not null:
if (someObject == null) {
someObject = new SomeObject();
}
someObject.doSomething();
或者,当它为null
时,您需要跳过整个调用:
if (someObject != null) {
someObject.doSomething();
}
顺便说一句,这与线程无关。与其他所有错误一样,这只是一个编程错误 RuntimeException
.
关于java - 线程行为不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2572531/