在注释处理期间,我当前正在处理方法的注释:
@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) { }
最佳答案
如果将方法 Element
转换为 ExecutableElement
,则可以调用 executableElement.getParamerers()
。这会返回一个 VariableElement
列表,您可以从中获取注释。
关于java - 在注释处理期间如何从方法获取其参数的注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37788629/