使用 Java 注释处理器查找注释方法的方法参数?

Sve*_*uer 3 java annotations annotation-processing

我有以下注释:

@Target(ElementType.METHOD)
public @interface MyAnn {
}
Run Code Online (Sandbox Code Playgroud)

以及用以下注释的方法@MyAnn

  @MyAnn
  Object myMehtod(Object x) {
  ...
  }
Run Code Online (Sandbox Code Playgroud)

使用 Java 注释处理器,我得到的注释元素为:

Element annotatedElement // = myMehtod 
Run Code Online (Sandbox Code Playgroud)
  1. 如何获取该方法的返回类型?
  2. 如何获取该方法的参数?
  3. 如何获取此方法的参数名称?

Sve*_*uer 7

这是我的解决方案:

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( );
Run Code Online (Sandbox Code Playgroud)