有没有好用的库?像apache commons里的有没有专们处理这些方面的,像接口的所有实现类等。现成的库有吗?

解决方案 »

  1.   

    用java的反射机制,不就搞定了
      

  2.   

    没看懂啥意思,标题的意思有点奇怪接口不应该知道它的具体实现是什么,这违背设计的初衷只有具体业务具体实现某个接口如果你说你coding的时候想要知道的话,Eclipse里用Ctrl+T即可
      

  3.   

    对如果是已编译的class文件,,可以使用JAVA反射机制。如果是源码可以通过eclipse的CTRL+T查看
      

  4.   

    一般比较少用的,因为这样的话你必须扫描所有的jar并加载所有的class到内存中才可以知道到底是否为子类。效率低并且占用大量内存(因为可能这些类本来不需要使用的)
    建议不要使用,若一定需要你可以自己加载所有的类然后再判断
      

  5.   


    如果你使用自己的classloader的话,即读即扔,内存消耗还好。
      

  6.   

    用反射的没明白我的意思?是找基类的继承类,不是找子类的父类。如:abstract class AbstractClass;class MyClass extends AbstractClass;即我现在只有AbstractClass定义,哪些扩展是留给开发人员的。所以有没有扩展我是不知道的。所以我想把我定义好的接口(抽象类)的所有实现(子类)找出来。这样我才能判断有哪些扩展,该怎么处理。只有自己写类遍历吗?我知道是要遍历,但有没有现成的库呢?
      

  7.   

    自己遍历开发人员扩展不是一个好的方法,通常都是要求写扩展的人在某个地方写配置文件的。其实我觉得要不你就固定一个包名,要求开发人员固定用这个包名,这样可以用Spring中的类完成
    ResourcePatternResolver resourcePatternResolver = new PathMatchingResourcePatternResolver();
    Resource[] resources = resourcePatternResolver.getResources("chdw.test");
    System.out.println(resources[0]);
      

  8.   


    Class.getGenericSuperclass()
      

  9.   

    反射個毛啊,把類加載到內存,用instanceof比較一下不就知道了
      

  10.   


    public static void main(String[] args) throws Exception {
    Class a = Class.forName("java.util.ArrayList"); Class b = null;
    while ((b = a.getSuperclass()) != null) {
    a = b;
    System.out.println(b);
    }
    }當俺樓上的是放屁
      

  11.   

    这个必须限定范围,在项目的classpath里,某个jar包,或其他。否则,你说说人文始祖黄帝的子孙有多少?