我想學習和註釋的樂趣。這裏是我的用例:我有一堆基本上具有相同角色的類:根據正則表達式(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
這是一個使用註釋的人爲的例子,當有更好的習慣用法時「抽象」類的方式。我會發現一個更合適的問題來解決註釋。 –
是的,你說得對。我只是想學習如何使用它,但用例確實不夠。 – Rolf