运行代码时出现 NullPointerException。我已将问题范围缩小到第 38 行:当它被注释掉时,程序不会给出任何错误。我现在只是在这里进行“测试”。
out.println("test")
run方法立即在另一个类中使用以下两行启动
Client test = new Client();
test.start();
当按下按钮时,将执行以下代码,该代码运行 sendToServer 方法
Client test = new Client();
test.sendToServer(cipherText)
下面是我的 Client 类的完整代码。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
public class Client extends Thread{
String line = "";
String cipherText = "";
BufferedReader in;
PrintWriter out;
public void run(){
String serverAddress = "00.000.000.000";
try{
Socket socket = new Socket(serverAddress, 8888);
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out = new PrintWriter(socket.getOutputStream(), true);
}
catch(IOException e){
e.printStackTrace();
}
while (true) {
try{
line = in.readLine();
}
catch(IOException e){
e.printStackTrace();
}
System.out.println(line);
}
}
public void sendToServer(String in) {
out.println("test");
}
}
感谢您的观看,我仍在学习 java,所以请原谅任何明显的错误。
最佳答案
你在类(class)开始时:
PrintWriter out;
如果你不在sendToServer()之前调用run()[是你初始化它的地方],“out”将永远不会被初始化并且将为空。
关于java.lang.NullPointerException PrintWriter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36480455/