1
@Override
    public void onCancel() {
        // TODO Auto-generated method stub

エラー:タイプSoftKeyboardのメソッドonCancel()は、スーパークラスメソッドSoftKeyboard.java / EmotePractice / src / com / emote line691Javaの問題をオーバーライドする必要があります。

スーパークラス?? @Overrideは文法で発生したエラーをキャッチするためのものだと思いましたが、なぜこれを言っているのですか?

4

2 に答える 2

1

onCancel()オーバーライドしているスーパークラスに、パラメーターとvoid戻り値のない、というメソッドがあることを確認しますか?答えが「いいえ」の場合は、@Override注釈を削除してみて、それが機能するかどうかを確認してください。

アノテーションは、@Overrideメソッドがスーパークラスで同じように宣言されたメソッドをオーバーライドしていることを示すために使用されます。javadocsから:

@Overrideメソッド宣言が、スーパークラスのメソッド宣言をオーバーライドすることを目的としていることを示します。メソッドにこのアノテーションタイプのアノテーションが付けられているが、スーパークラスメソッドをオーバーライドしない場合、コンパイラはエラーメッセージを生成する必要があります。

于 2012-04-09T00:49:55.593 に答える
0

あなたがそれを置いたコードのブロックはおそらくいくつかのエラーを持っています。たとえば、このSoftKeyboardには、オーバーライドするか、最初に定義する必要のある他の関数が含まれている可能性があるため、これらの他の条件が満たされると、これは自動的に消えるエラーになります。いずれにせよ、問題をより適切に切り分けることができるように、コンテキストコードをさらに貼り付けてください。

ところで、@ Overrideは文法で発生したエラーをキャッチしませんが、文字通りスーパークラスの事前定義されたメソッドをオーバーライドします。

于 2012-04-09T00:44:34.033 に答える