[英]Error in java when creating Threads
創建線程時Java錯誤。 該錯誤在“ MainApp”中,其中RandomCharacterThread為錯誤。 線程t1期待一個字符,而我卻給它一個int值。 這是導致錯誤的原因。 我添加了注釋,以使社區更加清楚代碼。
//Main class.
//program to display random numbers and characters using threads.
public class MainApp
{
public static void main(String[] args)
{
new MainApp().start();
}
public void start()
{
Thread t1 = new Thread (new RandomCharacterThread("1"));
t1.start();
}
}
//RandomCharacterThread.
//Imports.
import java.util.Random;
//=====================================================================
public class RandomCharacterThread implements Runnable
{
//Variables.
char letter;
int repeats;
Random rand = new Random();
//Constructor
//=====================================================================
public void RandomCharacterThread(char x)
{
letter = x;
repeats = rand.nextInt(999);
}
public void run()
{
try
{
for(int i = 0;i < repeats; i++)
{
System.out.println("Character: " + letter);
}
}
catch(Exception e)
{
}
}
}
您的“構造函數”將char
作為參數; 您正在傳遞String
。 你想做類似的事情
Thread t1 = new Thread (new RandomCharacterThread('1'));
注意單引號而不是雙引號,這使它成為char
常量而不是帶有一個字符的String
。
我用引號說“構造函數”是因為您實際上沒有一個:您有一個方法返回與類同名的void。 刪除“空”,你會很好。 構造函數根本沒有返回類型:
public RandomCharacterThread(char x)
{
...
這是一個非常常見的新手錯誤,但大多數人只會犯一次!
類RandomCharacterThread
的構造函數期望使用char類型的參數,當您傳遞字符串時會引發錯誤。
這是正確的版本。
Thread t1 = new Thread (new RandomCharacterThread('1'));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.