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

(一)Eclipse IDE的做法

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

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

例如:

(二)自己怎么做?

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

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

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

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

猜你喜欢

转载自www.cnblogs.com/dlsunf/p/9435840.html
IDE