有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java为什么我在运行时得到空指针异常,而不是在调试模式下

我有一个客户机-服务器应用程序。消息在应用程序中来回处理

我怀疑有些东西没有足够的时间来响应和/或没有及时创建

代码的这个特定区域正在处理一条消息,它在该消息中设置客户端中的数据。处理消息的方式是通过命令。这些命令被放入线程池执行器中。我在运行时得到以下异常。然而,当我调试并进入execute方法,然后跨过每一行时,我从未遇到异常。这使得调试变得非常困难

任何调试建议都将受到高度赞赏,因为我是线程管理新手(希望它与线程无关)

Exception in thread "pool-1-thread-1" java.lang.NullPointerException
at Client.Commands.DisplayProjects.execute(DisplayProjects.java:47)
at Client.Commands.ClientCommand.run(ClientCommand.java:31)
at Client.Commands.ProcessData.execute(ProcessData.java:24)
at Client.Commands.ClientCommand.run(ClientCommand.java:31)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)

以下是执行方法:

    @Override
public void execute(Client client) {
            /* Create and display the form */
    java.awt.EventQueue.invokeLater(() -> {
        new SplashScreen(client).setVisible(true);
    });
    System.out.println("SplashScreen is null"+client.splashscreen==null);
    client.splashscreen.setProjects(projects);
}

下面是setProjects方法:

    public void setProjects(ArrayList<String> projects){
    DefaultTableModel model = new DefaultTableModel();
    int row = 0;model.setRowCount(0);
    model.addColumn("Application", new Object[0]);
    model.addColumn("Description", new Object[0]);
    Iterator<String> iterator = projects.iterator();
    while(iterator.hasNext()){
        String name = iterator.next();
        String[] projectRow = new String[2];
        projectRow[0] = iterator.next();projectRow[1]="";
        model.addRow(projectRow);
    }
    ProjectTable.setModel(model);

}

共 (0) 个答案