アノテーションの勉強でちょっと一息

7/6に作ったソースを見てたけど、スタティック変数アノテーションをJ2SE5.0風みたいにインターフェース(タイプ?)で定義するのは、ちょっと無理があるんじゃないかなーって思った。


単純なアノテーションインターフェースだったら

public interface Simple {
    public String SUFFIX = "SIMPLE";
    public String name();
    public Class clazz();
}

アノテーションをつけるクラスも

public class Problem {
    public static final String name_SIMPLE = "simple problem";
    public static final Class clazz_SIMPLE = String.class;
}

って感じか

public class Problem {
    public static final String SIMPLE = "name=simple problem, clazz=String.class";
}

って感じで単純だけど、


もし入れ子(?)のアノテーションインターフェース(タイプ?)だったら

public interface Parent {
    public String SUFFIX = "PARENT";
    public String name();
    public Class clazz();
    public Child[] children();
}
public interface Child {
    public String SUFFIX = "CHILD";
    public String name();
    public Class clazz();
    public Baby[] babies();
}
public interface Baby {
    public String SUFFIX = "BABY";
    public String name();
    public Class clazz();
}

こんな場合にアノテーションをつけるクラスはどんな感じになるだろうー。


思いつくのは変なのばかり・・・

もっといい案がでるまで考えよう