皆さん、Annotationを活用してますか?JavaでAnnotationが使えるようになったのはJ2SE5.0からなので、導入されてから随分と経ったものです。各種フレームワークやライブラリでも、Annotation対応されるようになり、利用する機会は多いと思います。
さて、今日は提供されているAnnotationを使う話ではなくて、自分で作ったAnnotationを自分で作ったアプリで活用してみようという趣旨。僕自身、ごく最近になって自作Annotationをアプリで使ったっていう程度の経験値なので、過度な期待はされませぬよう・・・。
まずはAnnotationの作成ですが、これについてはいろんなサイトやブログで解説されています。なので、ちらっと触れる程度に留めておきます。この記事で出てきた内容で、不明な所があれば下記のサイトがとても役立つはず。
Javaアノテーションメモ(Hishidama's Java annotation Memo)
とりあえず、簡単にAnnotationを作ってみましょう。題材としては、enum値を保持するだけの簡単なものです。JavaはJ2SE6.0を使ってくださいませ。
public enum SampleEnum { SAMPLE1("sample1"), SAMPLE2("sample2"); private String value; private SampleEnum(final String value) { this.value = value; } /** * @return the value */ public String getValue() { return value; } } @Target({ ElementType.METHOD }) @Retention(RetentionPolicy.RUNTIME) public @interface SampleAnnotation { SampleEnum value() default SampleEnum.SAMPLE1; }
作ったAnnotationを、適当なメソッドにつけてみましょう。
public class SampleLogic { @SampleAnnotation(SampleEnum.SAMPLE2) public void sample(String s) { System.out.println("arg=" + s); } }
ここまでで、Annotationを作って使ってみるという話はおしまい。次は、メソッドに設定したAnnotationを取得してそこに設定されている値を保持し、どっか別の場所で参照する説明をしようと思います。
ただ、長くなりそうなので、それは次回に持ち越しで・・・。SpringとAspectJを使って説明します。