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

使用Java注释处理器查找带注释方法的方法参数?,java,annotations,annotation-processing,Java,Annotations,Annotation Processing,我有以下注解: @Target(ElementType.METHOD) public @interface MyAnn { } 以及一个用@MyAnn注释的方法: @MyAnn Object myMehtod(Object x) { ... } 使用Java注释处理器,我得到的注释元素如下: Element annotatedElement // = myMehtod 如何获取此方法的返回类型? 如何获取此方法的参数? 如何获取此方法的参数名称? 以下是我的解决方案: E

我有以下注解:

@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( );
    

    ExecutableType ExecutableType=(ExecutableType)AnnotateDelete.asType();
    列表以下是我的解决方案:

    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( );
    

    ExecutableType ExecutableType=(ExecutableType)AnnotateDelete.asType();
    列表
    您可以使用

    TypeMirror returnType = mehod.asType()
    
    List<? extends VariableElement> parameters = method.getParameters();
    
    您可以使用

    TypeMirror returnType = mehod.asType()
    
    List<? extends VariableElement> parameters = method.getParameters();
    
    您可以使用

    TypeMirror returnType = mehod.asType()
    
    List<? extends VariableElement> parameters = method.getParameters();
    
    您可以使用

    TypeMirror returnType = mehod.asType()
    
    List<? extends VariableElement> parameters = method.getParameters();
    

    ExecutableType ExecutableType=(ExecutableType)AnnotateDelete.asType()导致我出现编译器错误。类型不兼容。
    ExecutableType ExecutableType=(ExecutableType)AnnotateDelete.asType()导致我出现编译器错误。类型不兼容。