java - 在注释处理期间如何从方法获取其参数的注释?

标签 java annotations annotation-processing method-parameters

在注释处理期间,我当前正在处理方法的注释:

@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/

相关文章:

java - 在 Linux 中为我的 JSP 页面放置 Java 类的位置

java - 更新 javafx 中的动画 : Path Transition over an adjustable curve

java - 是否可以创建组合多个字段注释的组合注释?

java - 无法扩展 AbstractProcessor 以创建 java 注释处理器

java - 如何在 Java Annotation Processing 中获取字段的类型注释?

java - 处理没有注释的java类型

c# - 如何在 C# 中从 GWT Request Builder 检索数据

java - 关闭 Spring ApplicationContext

java - 字母数字字符串的@Pattern - Bean 验证

ios - 谷歌地图上未显示注释或标记