首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检查方法的TypeMirror returnType是否为枚举

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

Stack Overflow用户
提问于 2020-10-09 05:49:17
回答 2查看 179关注 0票数 2

我正在编写注释处理器。我的注释应用于接口中的方法:

代码语言:javascript
复制
public interface Sample {
   @MyAnnotation
   public ReturnEnum method();
}

ReturnEnum是我自己写的一个枚举。在我的处理器代码中,我执行如下操作:

代码语言:javascript
复制
TypeMirror returnType = methodElement.getReturnType();

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

打招呼。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-10-09 13:03:10

好的。找个解决办法。似乎您只需将其转换为特定的TypeElement即可。

代码语言:javascript
复制
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...
      }
   }
}
票数 3
EN

Stack Overflow用户

发布于 2020-10-09 06:35:02

我不太明白你的问题。

但是您可以使用if语句或更好的开关语句来比较值。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64274580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档