0

スレッド作成時のJavaでのエラー。エラーは「MainApp」にあり、RandomCharacterThreadがエラーです。スレッドt1はcharを期待していますが、私はそれに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)
    {

    }
}

}
4

2 に答える 2

3

あなたの「コンストラクター」はchar引数としてaを取ります。あなたは合格していStringます。あなたは次のようなことをしたいと思います

    Thread t1 = new Thread (new RandomCharacterThread('1'));

二重引用符ではなく一重引用符に注意してください。これにより、これは1文字charではなく定数になります。String

実際にはコンストラクターがないため、引用符で「コンストラクター」と言います。クラスと同じ名前のvoidを返すメソッドがあります。「ボイド」を削除すれば、元気になります。コンストラクターにはリターン型がまったくありません。

public RandomCharacterThread(char x) 
{
    ...

これは非常に一般的な初心者の間違いですが、ほとんどの人は一度だけそれをします!

于 2012-04-29T18:48:04.943 に答える
0

クラスのコンストラクターはRandomCharacterThreadchar型の引数を期待していますが、文字列を渡すとエラーが発生します。
これは正しいバージョンです。

Thread t1 = new Thread (new RandomCharacterThread('1'));
于 2012-04-29T18:55:05.180 に答える