gpt4 book ai didi

java - 如何从另一个类访问静态变量?

转载 作者:行者123 更新时间:2023-12-01 11:40:15 25 4
gpt4 key购买 nike

我正在尝试从服务器类访问客户端类中的变量“名称”。这就是我试图做的,但是当我打印它时,它说它是空的(?)。我怎样才能解决这个问题?提前致谢...

客户端类

class Client {
static Socket socket;
static String name;

public static void main(String[] args) throws Exception {

String hostname = "";
int port = 0;

if (args.length == 3) {
hostname = args[0];
port = Integer.parseInt(args[1]);
name = args[2];
System.out.println("(" + hostname + ":" + port + ")");
} else {
hostname = "localhost";
port = 3000;
name = "default";
System.out.println("Using all default arguments. (" + hostname + ":" + port + ")");
}

Client c = new Client(hostname, port);
c.connect();
}
}

服务器类

class Server {
ServerSocket main;
Helper helper;

static class MailServer extends Thread {
DataInputStream dataIn;
DataOutputStream dataOut;
int index;
Helper helper;
String name = Client.name; //<--- HERE
}
}

最佳答案

如果客户端和服务器类在同一个 JVM 中运行,那么您的代码应该可以工作,假设您未向我们展示的位是正确的。

所以...您(很可能)在一个 JVM 中启动 Client,并在另一个 JVM 中启动 ServerClient.name 静态数据不同。当您在客户端 JVM 中分配一个值时,它不会神奇地传播到服务器 JVM。

关于java - 如何从另一个类访问静态变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29585257/

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