私は注釈を覚えて楽しみたい。ここでは私の使用例です:私は、基本的に同じ役割を持つクラスをたくさん持っています:正規表現(1つのメソッド)に対してビデオURLを検証し、対応する埋め込みHTML(別のメソッド)を返します。注釈付きクラスでメソッドを生成する方法は?
検証方法は常に同じです。
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.??)
@Inherited
@Documented
public @interface VideoProvider {
String regex();
int group() default 1;
}
そのように処理:
は//processor class
public boolean process(Set<? extends TypeElement> annotations,
RoundEnvironment roundEnv) {
for (TypeElement annotation : annotations) {
for (Element e : roundEnv.getElementsAnnotatedWith(annotation)) {
if (e.getKind().isClass()) {
//?????
}
}
}
return false;
}
アイデアのようになり
が動的に注釈付きクラスを変更することは、このような注釈を作成することが可能である場合、私はもちろん継承を使用することができますが、私は希望します検証を実行するメソッドを挿入します。 これは実現可能ですか?
ありがとうございます!
ロルフ
クラスにメソッドを追加できます(多くのフレームワークがそうしています)。バイトコードの操作方法については、[javassist](http://www.csg.is.titech.ac.jp/~chiba/javassist/)を参照してください。 – Augusto
これは、アノテーションを使用する際の工夫された例です。 'Abstract'クラスを使います。私は注釈を使って解決するために、より適切な問題を見つけるでしょう。 –
うん、あなたは正しい。私はちょうどそれを使用する方法を学びたいと思ったが、ユースケースは実際には本当に適切ではなかった。 – Rolf