LoginSignup
2
0

More than 3 years have passed since last update.

Javaアノテーションの歴史

Last updated at Posted at 2020-08-06

Javaのアノテーションの役割と歴史をまとめる。

歴史

「@」アノテーションとは、Java 1.5で導入された、

  • @Overrideのようにコンパイラにヒントを与えるコメントとして生まれたのがきっかけ。

アノテーションを使用するメリット。

  • コードの正確性:@Nullable@Deprecated@Overrideなどのアノテーションにより、メソッドやフィールドに重要な意味情報を追加し、コンパイラによってその情報が強制されるようにすることができる。

  • テスト・メソッド:TestNGとアノテーションが登場するまで、JUnitは リフレクションを使用してメソッドがテスト・メソッドであることを判別していました。この判別には、特別なネーミング規則が必要でした。
    アノテーションの採用によって、ネーミング規則を使用する必要がなくなった。

  • 永続性(Hibernateなど):アノテーションを付加することで、フィールドやメソッドをデータベースに保存されているデータと紐付けることができる。

  • 依存性注入:インジェクションする必要があるクラスにアノテーションを付加し、その旨を示すことができる。

よく使うアノテーション

@Nullable@Nonnull(javax.annotation)

  • フィールドおよびメソッド・パラメータに付加でき、変数がnull値を取ることができるか どうかを指定します。
  • このアノテーションは非常に有用であり、Javaコンパイラ(javac)を使用する多くのツール(主要なIDEが代表的な例です)がこの2つを認識します。
  • 可能な限り、常にこのアノテーションを使用するようにします。コードベースにおけるnullポインタ例外の数が急激に減ることにすぐ気付くはずです。

@Override

Java6以降必須になっている。

理由

  • このアノテーションは、親インタフェースまたは親クラスのメソッドをオーバーライドするすべてのメソッドに付加する必要がある。
  • この付加によって、意図せずにメソッドをオーバーライドしてしまうこと

  • 逆にタイプ・ミスのためにオーバーライドしていなかったメソッドを「オーバーライドした」と思ってしまう事態を防ぐことができる。

参考にした記事(いつもありがとうございます)

2
0
1

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
2
0