gpt4 book ai didi

java - Annotation-processing 如何从 Method 获取其参数的 Annotations?

转载 作者:行者123 更新时间:2023-11-30 08:01:18 32 4
gpt4 key购买 nike

注解处理过程中我目前正在处理一个方法的注解:

@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 - Annotation-processing 如何从 Method 获取其参数的 Annotations?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37788629/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com