Java注解的历史
总结Java注解的作用和历史。
历史
「@」注解是在Java 1.5版本中引入的一个功能。
@Overrideのようにコンパイラにヒントを与えるコメントとして生まれたのがきっかけ。
使用标注的好处。
-
- コードの正確性:@Nullable、@Deprecated、@Overrideなどのアノテーションにより、メソッドやフィールドに重要な意味情報を追加し、コンパイラによってその情報が強制されるようにすることができる。
-
- テスト・メソッド:TestNGとアノテーションが登場するまで、JUnitは リフレクションを使用してメソッドがテスト・メソッドであることを判別していました。この判別には、特別なネーミング規則が必要でした。アノテーションの採用によって、ネーミング規則を使用する必要がなくなった。
-
- 永続性(Hibernateなど):アノテーションを付加することで、フィールドやメソッドをデータベースに保存されているデータと紐付けることができる。
- 依存性注入:インジェクションする必要があるクラスにアノテーションを付加し、その旨を示すことができる。
常用的注释。
@Nullable和@Nonnull(javax.annotation)
-
- フィールドおよびメソッド・パラメータに付加でき、変数がnull値を取ることができるか
-
- どうかを指定します。
-
- このアノテーションは非常に有用であり、Javaコンパイラ(javac)を使用する多くのツール(主要なIDEが代表的な例です)がこの2つを認識します。
- 可能な限り、常にこのアノテーションを使用するようにします。コードベースにおけるnullポインタ例外の数が急激に減ることにすぐ気付くはずです。
@Override
需要Java6或更高版本。
原因 (li3you2)
-
- このアノテーションは、親インタフェースまたは親クラスのメソッドをオーバーライドするすべてのメソッドに付加する必要がある。
-
- この付加によって、意図せずにメソッドをオーバーライドしてしまうこと
- 逆にタイプ・ミスのためにオーバーライドしていなかったメソッドを「オーバーライドした」と思ってしまう事態を防ぐことができる。