2011年10月5日水曜日

[Android][開発]アノテーション @Override Eclipseバグか?

Android開発の学習をはじめてみたのだが、どうも開発ツールEclipseのバグで、つまずくことが多いのでメモ。

10年ほど前にJavaの勉強したときには無かったのだが、今はアノテーションというコンパイルエラーを事前検知する便利な構文が用意されている。@Override というやつ。これは、以降のメソッドは、親クラスのメソッドをオーバーライドしますよと宣言。何がいいかというと、オーバーライドしたつもりがスペルを間違えたりして、意図しないメソッドを追加してて、誤って親のメソッドを呼び出してても、開発者も開発ツールも気づかないなんてことを防いでくれる。

だけど、@Overrideを記入しても、しなくても、慎重にプログラミングすればコンパイルエラーにはならないはずなのに、Eclipseから「親のメソッドがオーバーライドされてません」というメッセージが出ることがある。アノテーションとEclipseのコンパイルエラー検知機能が混乱してる感じ。

仕方ないので、Eclipseの指示に従おうと、右クリックして「必要なメソッドの自動追加」をクリックして、メソッド名など自動入力されたところに、今までコンパイルエラーになってたプログラムをコピペすると、すんなり解決。

こんなことで2時間悩んだ。開発ツールや機種のご機嫌を伺うのが、プログラミングだったな、と再実感。

0 件のコメント: