いまさらアノテーションの理解
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をやりすぎ。ちょっと反省。