java - 如何通过注解处理工具获取extends接口(interface)?

标签 java annotation-processing

A想要获取类的所有方法,包括它的扩展类的方法。

例如:

interface A{
  void a();
}

interface B extends A {
  void B();
}

我想通过Element获取方法a()和b()。

最佳答案

TypeElement element;
getSuperElement(element.asType());

private void getSuperElement(TypeMirror mirror) {
    if (mirror == null ) return;
    List<? extends TypeMirror> mirrors = mTypeUtils.directSupertypes(mirror);
    if (mirrors == null || mirrors.isEmpty()) return;
    for (TypeMirror it : mirrors) {
        if (it.getKind() == TypeKind.DECLARED) {
            // this element is super class's element, you can do anything in here
            Element element = ((DeclaredType) it).asElement();
        }
        getSuperElement(methodBuilder, componentName, it);
    }
}

关于java - 如何通过注解处理工具获取extends接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55058688/

相关文章:

kotlin - 使用 kapt 和 gradle 时无法调试注释处理器

java - 将本地注释处理器项目集成到 gradle 构建中

android - 检查 kapt 是否使用增量注释处理

java - 注释处理工具 <- 检查有效注释

java - jsp中不打印参数

java - 最佳黑莓开发环境

java - 对两个 ArrayList 中的元素进行排序和交换 (Java)

java - 使用 "for all"与未解释的排序 JAVA API

java - 为什么 instantiateItem 不调用,ViewPager 不工作?