java.lang.NullPointerException PrintWriter

标签 java nullpointerexception try-catch printwriter

运行代码时出现 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/

相关文章:

java - Java 使用对象作为字段时出现 NullPointerException

flutter - 如何通过 Sentry 发送设备信息

java - 为什么重复使用扫描仪直到用户输入合法值后会出现 "variable might not have been initialized "错误?

c# - Try Catch应该使用,除非永远不要使用?

java - 如何确定我的树方法需要哪些参数?

java - 如何在 Android 上使用 GPS 输出位置

java - 在 JTabbedPane 中设置特定选项卡的可见性

java - 如何使用二分查找处理数组中的重复数字和两位或更多位数字?

java - Java 中的类加载器变体和用法

java - 什么是NullPointerException,我该如何解决?