1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

java_アノテーション_メモ_20200807

Posted at

アノテーション

  1.アノテーションとは

    アノテーションとは「この部分は警告を出さなくてもよい」という指示をソースコード内に記述できることです。

    アノテーションは"@"から始まる記述でコメント内ではなくソースコードにそのまま記述します。
    以下で標準で準備されている3つのアノテーションを例にどのようなものか実際に確認しましょう。

    >違う記事で記述済みのためこれくらいの説明にとどめさせていただきます。

  2.アノテーションを利用したコード

コメント 2020-08-07 105055.png

  3.@SuppressWarning - 警告を抑制する

    クラス、メソッド、フィールドなどに対して、一定の種類の警告をしないように指示するのが
    @SuppressWarningアノテーションです。

    このアノテーションは、パラメータとして「抑制、制御したい警告の種類」を指定します。
    たとえば、「2.アノテーションを利用したコード」にあった、
    @SuppressWarning("Serial")は、serialVersionUIDを宣言していないことに対する警告を出さないようにします。
    そのほかこのアノテーションには以下の表1のようなパラメータがあります。

  表1 @SuppressWarning で指定可能な代表的なパラメータ

  コメント 2020-08-07 115055.png

  4.@Override - オーバーライド宣言

    メソッド宣言の先頭に、@Overrideアノテーションをつけると、そのメソッドが親クラスの同名のメソッドを
    オーバーライドすることを明示的に宣言することができます。

    なんでこんなものが必要なのか?
     >「オーバーライドしたつもりで、実はできていない」場合、それに気づくため

    たとえば、親クラスで宣言されたメソッド transfer() をオーバーライドするつもりで、
    子クラスで誤ったスペルのメソッド transfer() を宣言してしまったとしましょう。
    これではオーバーライドになっていないため、何度 transfer() を呼び出しても親クラスの transfer()が
    動作してしまい、子クラスの transfer() は動作しません。
    
    そのため「メソッドは呼びだせて一応動くが、動作内容がおかしい」という原因の特定が難しい不具合が
    発生してしまいます。
    そこで、オーバーライドを行うことを前提としているメソッド宣言の先頭には@Overrideアノテーションを付ける
    ようにすることでコンパイラが警告を出してくれます

  5.@Deprecated - 非推奨の宣言

    クラス、フィールド、メソッドなどの宣言の先頭に**@Deprecatedアノテーション**を付けると、
    それが非推奨であることをコンパイラに伝えることができます。
    たとえば、あるクラスに手を加えてより良いクラスを作成した結果、古いほうのクラスを使ってほしくない
    時などに記述します。

 長々と記載が続きましたが、未来の自分用のメモですのでご一読いただいた中で間違っているところもあると思います。
 間違っているところなどございましたらご指摘願います。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?