0

このコードは本 Learning Java (Oracle Press Books) にあるものとまったく同じですが、機能しません。うまくいかない理由がわかりません。うまくいくはずです。OpenJDK と Sun JDK 7 の両方で試しましたが、エラーは同じです。

ThreadCom.java:56: error: unexpected type
    if (thrd.getName().compareTo("Tick") = 0) {
                                ^
  required: variable
  found:    value
1 error

問題のコードは...

class MyThread implements Runnable {
    Thread thrd;
    TickTock ttOb;

    MyThread(String name, TickTock tt) {
            thrd = new Thread(this, name);
            ttOb = tt;
            thrd.start();
    }

    public void run() {
            if (thrd.getName().compareTo("Tick") = 0) { // <- that line
                    for (int i=0; i<5; i++) ttOb.tick(true);
                    ttOb.tick(false);
            } else {
                    for (int i=0; i<5; i++) ttOb.tock(true);
                    ttOb.tock(false);
            }
    }
}

コードは本に書いてあるとおりです。

4

2 に答える 2

5

これ

thrd.getName().compareTo("Tick") = 0

する必要があります

thrd.getName().compareTo("Tick") == 0

1つ目は課題です。2番目は比較です。

于 2012-12-05T14:15:55.910 に答える
3

二重等号を忘れていましたが、気付きました。

if (thrd.getName().compareTo("Tick") = 0)

する必要があります

if (thrd.getName().compareTo("Tick") == 0)
于 2012-12-05T14:16:02.563 に答える