2015-07-06 2 views
0

У меня есть следующие аннотации:Найти метод Аргументы аннотированного метода с использованием Java Annotation Processor?

@Target(ElementType.METHOD) 
public @interface MyAnn { 
} 

и метод с аннотацией @MyAnn:

@MyAnn 
    Object myMehtod(Object x) { 
    ... 
    } 

Использование процессора аннотаций Java я получаю аннотированный элемент как:

Element annotatedElement // = myMehtod 
  1. Как получить возвращаемый тип этого метода?
  2. Как получить аргументы этого метода?
  3. Как получить имя аргумента этого метода?

ответ

0

Вот мое решение:

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

'ExecutableType executableType = (ExecutableType) annotatedElement.asType();' это вызывает у меня компилятор ошибки. Типы несовместимы. – Samuel

Смежные вопросы