java アノテーション忘れるのメモ
2007/06/25
2007/07/16
java
アノテーションに触る機会がないのでいじってみます。
Java言語機能-TECHSCORE-
package an;
public class A {
@Original(value="OK", a = {"i am anno"})
public int b(int i){
return 0;
}
}
public class A {
@Original(value="OK", a = {"i am anno"})
public int b(int i){
return 0;
}
}
package an;
public @interface Original {
String value();
String[] a();
}
public @interface Original {
String value();
String[] a();
}
アノテーションで使われる引数は、@intefaceで定義したものを全部使わないとだめなようです。
おいおいみていきます。
コードジェネレーターでソースを出力してアノテーションに可変になるようなパラメータをうめこむといのもありなのかなと考えてます。
だったらはじめからスクリプト言語を使用して、ジェネレータで生成するのはスクリプトに値をうめこんだものというものもありなのかな。
アノテーションをうめこんでコンパイルして、別のアプリケーションサーバに渡すとか。
※JBossあたりってそうやって振る舞いを指定していたような。
でも効果的使用方法がイメージできない。
IBM Tigerでのアノテーション 第1回: Javaコードにメタデータを追加する - Japan
上記のibmの記事からだと自分が考えていたのは若干ちがうかな。
アノテーションはメタデータです。
メタデータのメリットは、ドキュメンテーション、コンパイラー・チェック、コード解析、だそうです。
ドキュメンテーションは、なんとなくJavaDocがあるからわかるかな。
コンパイラーチェックはoverride,deprecatedとからの用法からわかるかな。
コード解析は、
IBM Tigerでのアノテーション 第2回: カスタム・アノテーション - Japan
2004年の記事だから、現時点から3年もまえの記事なんだけど、いまだにアノテーションの効果的な使い方を自分がイメージできていないことにあせりを感じますね。
: