比方说,我有一个接口A,有一堆的类:B、C、D……,这些类都实现了接口A,并且它们都在同一个系统当中。
那么我如何才能在系统运行中,知道总共有多少个类实现了A这个接口。用ClassLoader吗?如果是,怎么用,请贴个范例。非常感谢!

解决方案 »

  1.   

    LZ我帮你顶哇 在看JDK哇我
      

  2.   

    只用过从子类往父类找的函数 Class.getSuperclass() ;
    没有用过父类往子类找的。
      

  3.   

    上午是找不到了哇 但是可以知道现在已经用的类的数量,接口我也不知道有没有这个。具体管理的是在这个类包里面  java.lang.management;里面的getLoadedClassCount() 和 getTotalLoadedClassCount()  LZ可以用用哇可以这样写额
    ClassLoadingMXBean mxbean = ManagementFactory.getRuntimeMXBean();
    int a = mxbean.getLoadedClassCount();至于LZ想要的东西哇  至少我查不到哇  然后我觉得LZ可以自己写一个方法自己统计额  不会太难哇 LZ44吧
      

  4.   

    查找父类好找,但是找子类就不好找了,但是可以加这样的功能,不知道能不能满足楼主的要求定义接口public interface Iroot
    {
        String getName();
    }
    接口下面是抽象类,完成记录哪些类实现了该接口的功能abstract class Anode implements Iroot
    {
        private static List<String> classList = new ArrayList<String>();
        
        public Anode()
        {
            classList.add(this.getClass().getName());
        }
        
    }    

    这样实现有2个缺点:
    1.其他的子类需要继承Anode而不是实现Iroot接口,如果有子类直接实现了Iroot接口,则无法统计到。
    2.如果该子类的未创建实例,则也无法被统计到。