我想創建多個線程使用變量像threadname1,threadname2,.. threadnamen。而不是將它作爲一個硬編碼的值,我試圖使用for循環爲n個數字並在「threadname」字符串的末尾使用它。它會引發一些錯誤。我如何解決這個問題?爲什麼我得到一個「xxx已經定義」的編譯器錯誤?
public class RunnableExample{
public static void main(String[] args){
String Name = "";
String Ip = "";
for (int i=1; i<=2; i++){
if(i == 1){
Name = "irony";
Ip = "82.209.27.24";
}
else{
Name = "jocky";
Ip = "98.12.098.56";
}
String runname = "threadname" + i;
RunnableThread runname = new RunnableThread(Name,Ip);
new Thread(runname).start();
}
//RunnableThread threadname1 = new RunnableThread("irony","82.209.27.24");
//RunnableThread thread4 = new RunnableThread("jocky","98.12.098.56");
//new Thread(threadname1).start();
//new Thread(threadname2).start();
try{
}
catch (InterruptedException e) {
}
}
輸出:
bash-3.00# javac RunnableExample.java
RunnableExample.java:43: runname is already defined in main(java.lang.String[])
RunnableThread runname = new RunnableThread(Name,Ip);
請問該如何解決這個問題?看起來可能需要一些類型轉換。我不確定。
不要命名變量'Name'或'Ip'。第一個字符是大寫字母,表示該標識符引用_class_而不是字段。改爲使用'name'和'ip'。 – 2010-09-10 20:59:24