[英]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.