【发布时间】:2013-08-03 02:15:06
【问题描述】:
我正在尝试编写一个注释 Procssor 来检测使用 @PrintMethod 注释注释的方法。例如在下面的测试类中,我想在测试方法中打印代码。有办法吗?
从下面说明的 AnnotationProcessor 类中,我只能获取方法名称,但不能获取方法的详细信息。
测试类
public class test {
public static void main(String[] args) {
System.out.println("Args");
}
@PrintMethod
private boolean testMethod(String input) {
if(input!=null) {
return true;
}
return false;
}
}
注解处理器类
public class AnnotationProcessor extends AbstractProcessor {
//......
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
//retrieve test Anntoation
Set<? extends Element> ann =roundEnv.getElementsAnnotatedWith(PrintMethod.class);
//Print the Method Name
for(Element e: ann) {
String msg="Element ee :"+ee.getSimpleName().toString();
processingEnv.getMessager().printMessage( javax.tools.Diagnostic.Kind.ERROR, msg, e);
}
}
}
【问题讨论】:
标签: java annotations annotation-processing