[英]Find Method Arguments of annotated Method using Java Annotation Processor?
我有以下注釋:
@Target(ElementType.METHOD)
public @interface MyAnn {
}
和用@MyAnn
注釋的方法:
@MyAnn
Object myMehtod(Object x) {
...
}
使用Java注釋處理器,我得到的注釋元素為:
Element annotatedElement // = myMehtod
這是我的解決方案:
ExecutableType executableType = (ExecutableType)annotatedElement.asType();
List<? extends TypeMirror> parameters = executableType.getParameterTypes();
TypeMirror param1 = parameters.get(0);
DeclaredType declaredType = (DeclaredType)param1;
List<? extends AnnotationMirror> anns = ((TypeElement)declaredType.asElement()).getAnnotationMirrors( );
ExecutableElement method = ...
您可以使用以下方法獲取方法的返回類型
TypeMirror returnType = mehod.asType()
您可以使用以下方法獲取方法的參數
List<? extends VariableElement> parameters = method.getParameters();
您可以使用以下命令獲取參數名稱
parameters.forEach(p -> {
String name = p.getSimpleName().toString();
TypeMirror type = p.asType();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.