我正在嘗試編寫註釋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);
}
}
}