• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:new Runnable() runメソッド)

Runnableインターフェースのrunメソッドの@Override注釈を入れるとエラーになります

このQ&Aのポイント
  • Androidのエミュレーターでテスト中の環境はEclipseです。
  • Runnableインターフェースではrunメソッドをオーバーライドする必要がありますが、@Override注釈を入れるとエラーになります。
  • タイマータスク内でHandlerを使用しているため、UIスレッドを操作できます。

質問者が選んだベストアンサー

  • ベストアンサー
noname#161640
noname#161640
回答No.2

>同一メソッド内に二つ記入すると駄目なのでしょうか? 1つ目というのは、TimerTask内にあるrunのことでしょうか。(つまり、掲載されたソースコード内でのこと)あるいはまだ掲載されていない部分があるという意味ですか? 質問に掲載されている使い方なら、問題なく機能するはずですが……。 今、試しに適当なクラスにメソッドをペーストして確認してみましたが、(不明なインスタンス類を操作している部分はカットして)問題なく2つの@Overrideともに認識できていますね。 例えば、何かの制御コードなどのゴミが混じっているということはないですか。new Runnable(){からpublic void run() {あたりまでを一度カットして書きなおしてみてもダメでしょうか。余計な部分をカットして必要最小限の部分だけにしてみてもダメでしょうか。また、ちょっと考えにくいですが例えば同名のまったく違うクラスがimportされているといった可能性もないわけではないでしょう。 ざっとそのぐらいしか思いつきません。とりあえず、動くことはこちらでは確認できていますので、コードをもっと精査するぐらいしかないのですが……。

abuhiro
質問者

お礼

テストまでして戴いて誠に感謝です。 import分が怪しかもしれません。 import android.~.*: みたいな使い方がいくつかあります。 今回のコードは参考書に記載のコードなのですが、 自己入力でエラーとなるので、参考書付属のソースコードをコピーしても同エラーが発生してしまいました。 この参考書はかなり誤字脱字がある為、その他の部分で何かありそうです。 ソースは2000文字を超えてしまう為、貼り付けられなかったので、抜粋しました。 がんばって探してみます。 いろいろ本当にありがとうございました。

その他の回答 (1)

noname#161640
noname#161640
回答No.1

ひょっとして、JDK 5.0を使っているとか、あるいはプロジェクトのプロパティで、JavaコンパイラーのJDK準拠が5.0(1.5)になっているということはありませんか。@OverrideはJDK 6.0(1.6)からサポートされているので。

abuhiro
質問者

お礼

アドバイスありがとうございます。 JDKは6.0が入っています。 なぜか、一つ目の@Override注釈はエラーが発生しません。 二つ目を記入するとエラーとなります。 同一メソッド内に二つ記入すると駄目なのでしょうか?

関連するQ&A

専門家に質問してみよう