【发布时间】:2015-03-26 20:20:29
【问题描述】:
我正在做一个并发服务器程序并且我正在测试它。 在 JUnit 测试中,我输入以下内容:
[...]
Client[] clients = new Client[30];
for ( int i = 0; i<30 ; i++){
clients[i] = new Client("localhost", SERVPORT);
}
for ( Integer i = 0; i<30 ; i++){
new Thread(){
public void run(){
clients[i].send(i.toString()); <--
}
}.start();
}
[...]
问题是 Java 无法编译,因为我无法在以不同方法定义的内部类中引用非最终变量 i,因此我必须修改 i 并将其写为 final(但我不应该这样做) .我明白,但是...如何同时从所有客户端发送消息?
附加信息:
在send(String)方法中,我向服务器发送消息,等待服务器响应。
【问题讨论】:
-
为什么
i是Integer而不是int有什么原因吗? -
因为我想发送到服务器 i.toString() 并且对于该方法,我需要一个整数而不是整数的对象
-
你知道你可以使用
Integer.toString(n)这个静态方法,其中n是int,而不需要实际创建一个Integer对象? -
非常感谢,我不记得了!
标签: java multithreading loops server