3

わかりました。すぐにわかるように、私は専門の開発者ではありませんが、コードを自分の PC に複製するときに、この奇妙な問題が発生しました。私は Android アプリに取り組んでおり、bitbucket で git リポジトリを使用しています...私の問題は、私のクラスの 1 つが、@Override アノテーションを使用するいくつかの必須メソッドを備えたインターフェースを実装していることです。現在、私はMacとPCの両方で作業しており、PCワークスペースに再クローンする必要があるときはいつでも(これはあなたが思っているよりも頻繁です)、オーバーライドメソッドが「スーパークラスメソッドをオーバーライドする必要がある」というエラーが表示されます。それらを削除することを提案します。私の理解では、それらはメソッドをオーバーライドしていて、私の macbook では問題なく実行できますが、PC に切り替えるときは、Eclipse がヒスシフィットしないようにするために、毎回 @Override アノテーションを削除する必要があります。

なぜこれが起こっているのか誰にも分かりますか?

私が実装しているインターフェイスは TextWatcher であり、影響を受けるメソッドは「afterTextChanged」、「beforeTextChanged」、および「onTextChanged」です。それが役立つかどうかはわかりませんが、事前に助けてくれてありがとう.

4

2 に答える 2

3

私は時々仕事でこの問題を抱えています。プロジェクトのプロパティに移動し、次に Java コンパイラに移動して、コンパイラ準拠レベルを 1.6 に変更します。それが私が設定したものです。

ソース管理にも保存できないため、設定はワークスペース固有でなければならないと思います。

編集: また、プロジェクトの Android コンテキスト メニューには「プロジェクト プロパティの修正」があり、これも役立つ場合があります。上記の修正が行われるかどうかはわかりませんが、このオプションはあまり使用しません。

于 2012-07-08T05:54:49.243 に答える
2

Java 5 と Java 6 の間で、@Override の仕様が変更されました。Java 6 では、Java 5 では許可されていないインターフェースのメソッドを実装するメソッドに @Override アノテーションを追加できます。

1 台のマシンで Java 1.5 を使用し、もう 1 台のマシンで Java 6 を使用してコンパイルしているため、プロジェクトのコンパイラ設定を確認してください。

于 2012-07-08T05:55:44.703 に答える