我想学习并享受注释乐趣。这是我的用例:我有一堆基本上具有相同角色的类:根据正则表达式验证视频URL(1方法)并返回相应的嵌入式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;
}
这个想法是动态更改带注释的类以注入执行验证的方法。 那可行吗?
提前致谢!
罗尔夫
答案 0 :(得分:2)
答案 1 :(得分:0)
我认为你做错了---
但是如果你真的想在编译时使用注释处理来实现它,你应该看一下Pluggable Annotation Processing API
这专门用于向编译过程添加注释驱动的扩展,以执行自动添加方法等操作。