如何得到一个接口所有的实现类(及子接口)?例如:Eclipse IDE

Posted 怎么着都不成

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何得到一个接口所有的实现类(及子接口)?例如:Eclipse IDE相关的知识,希望对你有一定的参考价值。

(一)Eclipse IDE的做法

它会解析所有的Java文件、Class文件。

技巧:在Eclipse中,选中Interface,按下F4,就可以查看到所有的实现类及子接口。

例如:

(二)自己怎么做?

(1)如果你自己也不知道这个接口有哪些实现类

采用java默认的ClassLoader是没有办法获得所有实现类的,因为ClassLoader是在程序运行期间才会加载类到static区域,即如果你的程序需要使用某一个class,jvm发现这个class还没有被ClassLoader加载,就会主动去加载,否则就跳过,你没办法知道那些未被加载的实现类。

(2)如果你知道有哪些实现类

那就简单了,自己配置一个xml文件,把实现类的完整类名写在这个xml文件,再写一个解析程序,迭代每一个类名,直接用Class.forName加载就可以了。

以上是关于如何得到一个接口所有的实现类(及子接口)?例如:Eclipse IDE的主要内容,如果未能解决你的问题,请参考以下文章

泛型与反射:type接口来历及子接口

如何跟踪(枚举)实现接口的所有类

如何找到接口类的实现类

接口和内部类

如何把一个接口的所有实现类反射出来?

如何测试一个类是不是实现了另一个类的所有接口?