java - 线程行为不正确

标签 java multithreading

我想知道是否有人可以帮助我理解这段代码可能出问题的地方;基本上我正在编写一个教程并从另一个类调用下面的类 - 它收到以下错误;

线程“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 表示 someObjectnull。您无法访问或调用任何内容。要解决这样的问题,您只需确保此时 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/

相关文章:

java - 非 Spring MVC 应用程序中的 MultipartFilter

c# - 通过 Web API 请求(用户 session )共享和更新静态集合

c# Threadpool - 限制线程数

android - 实时示例和 AIDL 在 android 中的使用?

java - 有障碍物的最短路径

java - 我能以更好的方式加入线程吗?

Java 反射 - 获取包列表

java - 从Service类中的SQLliteDatabaseHelper获取数据

c++ - 如何让线程在 std::list 上等待一个值?

multithreading - Delphi:在主线程之外创建和使用套接字