Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在注释处理过程中,如何从方法获取其参数的注释?_Java_Annotations_Annotation Processing_Method Parameters - Fatal编程技术网

Java 在注释处理过程中,如何从方法获取其参数的注释?

Java 在注释处理过程中,如何从方法获取其参数的注释?,java,annotations,annotation-processing,method-parameters,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.getElementsAnnotated

在注释处理过程中,我当前正在处理方法的注释:

@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;
  ....

如果将方法
Element
强制转换为
ExecutableElement
,则可以调用
ExecutableElement.getParameters()
。这将返回
variablelement
s的列表,您可以从中获取注释

  final ExecutableType emeth = (ExecutableType)method.asType();
  final List<? extends TypeMirror> parameterTypes = emeth.getParameterTypes();
@Info
void myMethodOk(@Input String input) {  }

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