gpt4 book ai didi

java - 如何在java中创建同一类对象的多个引用

转载 作者:行者123 更新时间:2023-12-01 09:19:17 24 4
gpt4 key购买 nike

我想在下面的程序中创建对我的 Socket 的动态引用,以便我可以在将 Socket 对象保存在 map 中时保存对我的 Socket 对象的不同引用。

所以第一次应该使用socket1创建Socket类的引用,然后下次应该使用socket2动态创建它,依此类推。我尝试使用 socket + a 附加引用,并尝试使用该名称创建引用,但它不起作用。有没有办法创建对对象的动态引用

int a = 0;
public static void connect(int portNo, int trgtPNo , String webN)
{

try {
String x = Inet4Address.getLocalHost().getHostAddress().toString();
InetAddress addr = InetAddress.getByName(x);
String sock = "socket" + a;
Socket sock = new Socket(webN, trgtPNo , addr , portNo);
a++;
map.put(portNo,sock);
} catch (Exception e) {
e.printStackTrace();
}
}}

任何线索都会有帮助。

最佳答案

程序运行时不能动态设置变量名。变量名仅在编写代码时确定。相反,您可以设置 Socket 实例的Array。例如,创建 10 个实例:

try {
int socketsNum = 10;
String x = Inet4Address.getLocalHost().getHostAddress().toString();
InetAddress addr = InetAddress.getByName(x);
Socket[] sockets = new Socket[socketsNum];
for (Socket s : sockets) {
s = new Socket(webN, trgtPNo , addr , portNo);
}
} catch (Exception e) {
e.printStackTrace();
}

然后,您可以通过索引号获取Socket实例,例如socket[5]

如果您不想提前确定实例的数量,可以使用ArrayList()而不是Array

关于java - 如何在java中创建同一类对象的多个引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40278450/

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