gpt4 book ai didi

java - 无法在线程的构造函数中初始化 PrintWriter 字段

转载 作者:行者123 更新时间:2023-12-01 19:04:08 25 4
gpt4 key购买 nike

需要为每个连接创建一个新线程。线程应该具有写入套接字的功能,即使它正在 run() 中等待客户端输入:String clientCommand = in.readLine()。函数update应该满足这个要求,并且能够使用PrintWriter outWr写入套接字,但它似乎是null,即使将其设置为线程构造函数。无法在构造函数中初始化 PrintWriter outWr。在 try 构造之后,outWr 仍然为 null。如何解决?

<小时/>
public class Server {
public static void main(String[] args) {
...
ClientServiceThread cliThread = new ClientServiceThread(clientSocket, id++, auction);
...
}
<小时/>
public class ClientServiceThread extends Thread  {
private PrintWriter outWr;

ClientServiceThread(Socket s, int clientID, Auction a) {
try {
PrintWriter outWr = new PrintWriter(new OutputStreamWriter(
m_clientSocket.getOutputStream()));
} catch (IOException e) {
e.printStackTrace();
}
}
public void run() {....; String clientCommand = in.readLine(); ... }
public void update(String msg){outWr.println(msg);}

最佳答案

看看这段代码

public class ClientServiceThread extends Thread  {
private PrintWriter outWr;

ClientServiceThread(Socket s, int clientID, Auction a) {
try {
PrintWriter outWr = new PrintWriter(new OutputStreamWriter(

在构造函数中,您不初始化类字段,而是初始化本地引用PrintWriter outWr

更改为

        try {
outWr = new PrintWriter(new OutputStreamWriter(

关于java - 无法在线程的构造函数中初始化 PrintWriter 字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10866786/

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