1

Во время обработки аннотаций я в настоящее время обработки аннотаций метода:Как добраться от метода до аннотаций его параметров во время обработки аннотаций?

@Override 
public boolean process(Set<? extends TypeElement> elements, RoundEnvironment env) { 
    Messager msg = processingEnv.getMessager(); 
    for (TypeElement te : elements) { 
    for (Element e : env.getElementsAnnotatedWith(te)) { 
     processAnnotation(e, msg); 
    } 
    } 
    return true; 
} 

private void processAnnotation(Element method, Messager msg) { 
    final Info ann = method.getAnnotation(Info.class); 
    assert method.getKind() == ElementKind.METHOD; 
    .... 

я могу получить к типов (или его зеркалах) параметров с

final ExecutableType emeth = (ExecutableType)method.asType(); 
    final List<? extends TypeMirror> parameterTypes = emeth.getParameterTypes(); 

, но, как я получить его аннотации? Я хотел бы проверить, если рассматриваемый метод имеет какой-либо параметр с аннотацией @Input. Например обработанный источник может быть:

@Info 
void myMethodOk(@Input String input) { } 

@Info 
void myMethodNotOk(@Input String input) { } 

ответ

1

Если вы накладываете свой метод Element к ExecutableElement, то вы можете вызвать executableElement.getParamerers(). Это возвращает список VariableElement s, из которого вы можете получить аннотации.