gpt4 book ai didi

java - 如何将 main 中创建的实例传递给类?

转载 作者:行者123 更新时间:2023-12-01 16:33:57 25 4
gpt4 key购买 nike

首先,如果这是一个愚蠢的问题,我深表歉意。这最近一直困扰着我,我认为值得一问......

我有一个应用程序,其中的类流程如下:

enter image description here

我目前正在尝试允许我的 Client 类和 Server 类访问在 MyApp 的 main 中创建的彼此的实例。问题是实例是在 main 中创建的(从而使它们静态),我想知道如何正确地将它们传递给其他类,因为我所做的似乎不是正确的方法。

这是我所做的:

public class MyApp {
private static RedClient red_client = null;
private static BlueClient blue_client = null;
private static RedServer red_server = null;
private static BlueServer blue_server = null;

public static void main(String[] args) {
final Client myClient = new Client(arg1, arg2);
red_client = myClient.getRedClient();
blue_client = myClient.getBlueClient();

final Server myServer = new Server(arg3, arg4);
red_server = myServer.getRedServer();
blue_server = myServer.getBlueServer();
}

public static RedClient getRedClient() {
return red_Client;
}

public static BlueClient getBlueClient() {
return blue_client;
}

public static RedServer getRedServer() {
return red_server;
}

public static BlueServer getBlueServer() {
return blue_server;
}

}

我稍后会像这样使用以下内容:

public class Client {
public void SomeMethod {
MyApp.getBlueServer.doSomething(myObject);
}
}

我只是不确定这是否是将实例传递给另一个类的正确方法,因为客户端和服务器都与 MyApp 通信。 (请忽略类名,因为它们与应用程序的功能无关,我只是将它们用作名称,因为这是我首先想到的)。

如果您需要任何说明,请告诉我,因为我愿意接受学习和批评。如果这是错误的方法,请您解释一下为什么错误,然后解释正确的方法。

编辑

进一步说明:

  • MyApp 可以访问客户端和服务器
  • 客户端有权访问 RedClient 和 BlueClient
  • 服务器可以访问 RedServer 和 BlueServer

没有其他类可以相互访问。

最佳答案

我没有看到你传递/设置任何东西。

您没有理由不能将客户端实例传递到服务器(反之亦然):

Client myClient = new Client(args);
Server myServer = new Server(args);

BlueClient = myClient.getBlueClient();
RedCLient = myClient.getRedClient();

BlueServer = myServer.getBlueServer();
RedServer = myServer.getRedServer();

myClient.addServer(blueServer);
myClient.addServer(redServer);

myServer.addClient(blueClient);
myServer.addClient(redClient);

关于java - 如何将 main 中创建的实例传递给类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11528698/

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