2012-02-13 5 views
2

アクティビティのように、onCreate()メソッドのように、@Override注釈がある場合はそれほど大きな違いはありません。彼らはどちらも動作します。我々は活動におけるライフサイクルコールバック@Override注釈を持っている必要がある理由(限り、私は、コールバック内super.onCreate()を呼び出すように、それは親クラスのメソッドを呼び出します。)アクティビティコールバックの@overrideアノテーションについて

誰かが私に言うことはできますか?

@Override注釈なしでテストしたため、私の質問は、私のアプリはまだ正常に実行されています。

答えて

11

これは、良い開発の習慣によく似ています。

スーパークラスに存在しないメソッド(または実装されたインタフェース)を誤って上書きしたい場合は、エラーが発生します。

"onCreate"を上書きしたいが、間違って入力して "onCreatee"と書いてください。そのアノテーションを使用すると、エラーが発生します。それがなければ、初期化メソッドが正しく機能していなかった理由を理解しようと多くの時間を費やすことになります。

+0

+1私は同意します...その構造化されたコーディングの一部... –

1

@Overrideアノテーションは、コード内のメソッドをオーバーライドしていることをコンパイラに伝えるためにのみ使用されます。これは、コンパイラに関数の目的(つまり、オーバーライド)を知らせるために安全のために使用され、万一関数がオーバーロードされた場合、コンパイラはエラーを返します。したがって、このアノテーションを使用すると、過負荷のミスを簡単に検出できます。

1

誤って綴られた名前で潜在的なバグをキャッチすることは非常に便利だとすでに述べた人もいます。

と表示されます。これらのメソッドは、クラス固有の新しいメソッドであり、親クラス(またはインターフェイス)から継承されています。それはあまり好きではないかもしれませんが、個人的には非常に便利です。

@Overrideを使用して、忘れた場合はエラーにフラグを立てるようにIDEを設定する必要があります。

関連する問題