有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何检查方法的TypeMirror returnType是否为枚举

我正在写一个注释处理器。我的注释应用于接口内的方法:

public interface Sample {
   @MyAnnotation
   public ReturnEnum method();
}

ReturnEnum是我自己写的一个enum。 在我的处理器代码中,我做了如下操作:

TypeMirror returnType = methodElement.getReturnType();

我可以得到我的返回类型的名称:my。包裹ReturnEnum 但我不知道,如果我能检查它是否是枚举类型。 有办法吗

你好


共 (2) 个答案

  1. # 1 楼答案

    我不确定我是否理解你的问题

    但可以使用if语句或更好的switch语句来比较值

  2. # 2 楼答案

    好的。找到解决办法。看起来你只需要把它转换成一个特定的类型元素

    public void myMethod(ExecutableElement methodElement) {
       TypeMirror typeMirror = methodElement.getReturnType();
       if (typeMirror.getKind() == TypeKind.DECLARED) {
          TypeElement typeElement = (TypeElement) ((DeclaredType) type).asElement();
          if (typeElement.getKind() == ElementKind.ENUM) {
             // I wanted to get here...
          }
       }
    }