gpt4 book ai didi

java - 线程中出现异常 "thread-4"java.lang.NullPointerException

转载 作者:行者123 更新时间:2023-11-30 05:59:55 27 4
gpt4 key购买 nike

我非常感谢对我的程序的帮助

    Exception in thread "Thread-4" java.lang.NullPointerException
at ServerConnect.replyChoice(BaseStaInstance.java:63)
at ServerConnect.run(BaseStaInstance.java:45)
at java.lang.Thread.run(Thread.java:619)

我的 ServerConnect 函数如下所示:-

class ServerConnect extends Thread {

Socket skt;
String sProcessId;
ServerConnect scnt = null;
ObjectOutputStream myOutput;
ObjectInputStream myInput;


ServerConnect(){}
ServerConnect(Socket connection, String sProcessNo) {
this.skt = connection;
this.sProcessId = sProcessNo;
}

public void run() {
try {
myInput = new ObjectInputStream(skt.getInputStream());
ServerConnect scnt = new ServerConnect();

while(true) {
try{
int ownTimeStamp = Global.iTimeStamp;

Object buf = myInput.readObject();

//if we got input, print it out and write a message back to the remote client...
if(buf != null){
LINE 45--> **scnt.replyChoice(buf);**

}

}catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
} catch(IOException e) {
e.printStackTrace();
}
}

void replyChoice(Object buf){


try{
LINE 63 --> **myOutput = new ObjectOutputStream(skt.getOutputStream());**


System.out.println("Server read:[ "+buf+" ]");
myOutput.writeObject("got it");
myOutput.flush();

}catch(IOException e){
e.printStackTrace();
}
}
}

它基本上是一个套接字编程和多线程应用程序。在不同的终端上执行它以使客户端和服务器建立连接时,我执行我的代码。但它在两个终端上都会引发上述错误。它只是与我在错误的位置声明 myOutput 变量有关。有人可以帮我吗。从错误消息中,我突出显示了所附代码中的第 63 行和第 45 行。

最佳答案

  1. 删除默认构造函数
  2. 将您的实例字段(stk 和 sProrcessId)设为最终字段
  3. 了解编译器如何提示并解决这些问题

这些指令可帮助您将 NPE 等运行时错误转换为编译时错误,这是您能做的最好的事情。注意:这个技巧适用于一般情况。

关于java - 线程中出现异常 "thread-4"java.lang.NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2348122/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com