-2

Eclipse IDE が「そう言った」ため、これら 2 つの小さなエラーに少し苦労しました。誤りを指摘いたします。正直なところ、これらのエラーについて深く説明する方法がわかりません。それらは単純だと思っていたので、エラーを消すことができません。

    ScheduledExecutorService timer = Executors.newScheduledThreadPool (1);
    timer.scheduleAtFixedRate(new Runnable() 
    {
        public void run() 
        {
            if (lists. size ()> 0) 
            {
                boolean lighted = Lamp.valueOf(Road.this.name).isLighted(); //According to Eclipse, "The method valueOf(Class<T>, String) in the type Enum<Lamp> is not applicable for the arguments (String)"

                if (lighted) 
                {
                    System.out.println(lists.remove(0) + "is traversing!");
                }
            }
        }
    }, 1,1, TimeUnit. SECONDS);

私の別のクラスの私のパッケージの別のエラー

public Lamp Blackout() 
{
    this.lighted = false;

    if (opposite != null) 
    {
        Lamp.valueOf(opposite).in.Blackout(); //in cannot be resolved or is not a field. It suggests me to create enum constant, which I did and it wouldn't work either. 
    }

    Lamp nextLamp = null;

    if (next != null) 
    {
        nextLamp = Lamp.valueOf(next);
        System.out.println("Green" + name () + "--------> switch to" + next);
        nextLamp.light();
    }
    return nextLamp;
}
4

2 に答える 2

4

最初のエラー Lamp.valueOf(Road.this.name).isLighted();

//Eclipse によると、「Enum 型のメソッド valueOf(Class, String) は、引数 (String) には適用できません」

メソッド Lamp.valueOf() は 2 つの引数を想定しています。最初はクラス引数、次に文字列引数です。メソッドに String 引数を渡したところ、Eclipse がエラーをスローしているのはそのためです。

セカンドエラー

Lamp.valueOf(opposite).in.Blackout();

//in は解決できないか、フィールドではありません。

私には間違った構文のように見えます。コードをよく確認してください。あなたのコードでは、メソッドが連鎖しています。inそこにあってはいけません。あるいは方法かもしれませんin()

于 2015-05-02T20:07:09.700 に答える
2

関連するすべてのコードを開示していないため、暗闇で撮影していますが、valueOfここに不足しているパラメーターを追加してみてください。

boolean lighted = Lamp.valueOf(Lamp.class, Road.this.name).isLighted();

in() ここでメソッドを呼び出します:

Lamp.valueOf(Lamp.class, opposite).in(Blackout());

Java コード スタイルの規則に従ってください。メソッド名は小文字で始める必要があるため、ブラックアウト メソッドのシグネチャは次のようになります。

public Lamp blackout()

のコードを見ないLamp enumと、後者の場合の正確な問題を知ることはできません。

于 2015-05-02T20:10:07.090 に答える