コンピュータクワガタ

かっぱのかっぱによるコンピュータ関連のサイトです

いまさらアノテーションの理解

Seasar2関連のアノテーションのソースを読んでいるとよく出てくる、以下のような定義。

@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)

不勉強で、Seasar2の独自のものだと思ってました。(importとか見たらわかるんだけど、Eclipseは最近importを隠すから)
プログラミング言語Java (The Java Series)を読んでいて意味がわかりました。

Retention

Retentionは、
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/annotation/RetentionPolicy.html
で、デフォルトはCLASSだけどRUNTIMEにしておかないと、実行時にリフレクションでアノテーションが読めないと。Seasar2でよく使用しているアノテーションはまず、RUNTIMEにしておく必要があると思われます。

Target

これはもっと簡単で、アノテーションの書ける場所を定義します。
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/annotation/ElementType.html
ドキュメントを見れば一目瞭然。

有酸素運動しながら、斜め読みしてよかった。
6月はじめての日記か。FEをやりすぎ。ちょっと反省。