美文网首页
Android中如何根据父类获取所有子类的方案

Android中如何根据父类获取所有子类的方案

作者: 小小亭长 | 来源:发表于2020-09-16 18:11 被阅读0次

方案一:类似databinding的实现

获取所有project
获取依赖包名
判断目标类是否存在
收集所有可用的包名
最后生成当前model中的文件

其中:
ProcessDataBinding 负责读取Br文件下下面的文件并收集文件,包名信息
TaskManager 中 会创建各个项目的br文件,并将model中的br文件copy到app目录下

疑问:
如何在当前model中筛选出使用了databind的aar??
如何判断aar中有没有databinding信息的??

缺点:
1:在每个架包中生成文件,文件一旦被删除就无法确定该架包是不是真的含有我们生成的文件
2:生成文件依赖注解但是如果没有注解的话,编译工具就会报错,怎么解决?

方案二:遍历class文件

遍历所有class文件,通过查看类文件中的父类信息判断继承关系
缺点:
主线程只能5s,性能方面的影响?

Reflections reflections = new Reflections("com.projectname");
Set<Class<? extends IParent>> subTypes = reflections.getSubTypesOf(IParent.class);

相关文章

  • Android中如何根据父类获取所有子类的方案

    方案一:类似databinding的实现 获取所有project获取依赖包名判断目标类是否存在收集所有可用的包名最...

  • 子类对象实例化的全过程

    从结果上看:(继承性)子类继承父类后,就获取了父类中声明的属性或方法创建子类的对象,在堆空间中,就会加载所有父类中...

  • 【Dart】类与对象-继承

    继承 根据类的先后顺序,可以将类分成父类和子类 子类通过extends关键字继承父类继承后,子类可以使用父类的中,...

  • 2022-05-15程序员周记

    成员变量继承 Java中的子类和父类都有相同命名的变量,当左边的类是父类时则获取父类的变量值,若是子类则使用子类的...

  • PyQt(三) 类继承结构图

    一. PyQt5 类的继承结构图 二. 如何获取一个类的父类和子类? 使用QObject.mro()获取父类, 使...

  • IOS 获取父类的所有子类

    1、获取父类的所有子类 -(void)getSubclass { int numClasses; Class *c...

  • 03.继承中成员变量的特点

    继承中成员变量的特点 A:子类只能获取父类非私有成员子父类中成员变量的名字不一样直接获取父类的成员变量子父类中成员...

  • Java-this.getClass().getName()

    Java 父类使用 this.getClass().getName() 获取到的是子类的类名在继承关系中,不管父类...

  • Python面向对象编程-3·继承

    一、继承的概念: 子类 拥有 父类 的所有 方法 和 属性 子类 继承自 父类,可以直接 享受 父类中已经封装好的...

  • 70-继承方式四-终极方案

    终极方案在子类的构造函数中通过 call 借助父类的构造函数将子类的原型对象修改为父类的实例对象 funct...

网友评论

      本文标题:Android中如何根据父类获取所有子类的方案

      本文链接:https://www.haomeiwen.com/subject/wdehyktx.html