Atitit利用反射获取子类 集合 以及继承树

本文介绍了一种利用反射技术获取指定类的所有子类的方法。通过遍历指定包内的所有类文件,查找并收集继承自目标类的子类。此外,还提供了在JAR文件中搜索类的具体实现。

Atitit利用反射获取子类 集合 以及继承树

 

 

 

想从父类往下找子类的确是不可能的,要知道只要类不是final的话谁都有继承它的自由不需要事前通知父类。

Eclipse实现不是重父类开始找而是重子类往回找,然后在逐个匹配。

很简单,遍历源代码目录下的所有类文件,根据类定义行通过字符串匹配找出继承该类的所有子类。

找某个包的子类,JDK中没有直接提供相应的接口,应该是加载classpath下的所有类,放到类似Map<Package, Collection<Class>>容器中

如果一定要实现,觉得可以反向,即:遍历指定的包内所有的类,看其父类是否就是预先想要的。

怎样获取某个类的所有子类?-优快云论坛-youkuaiyun.com-中国最大的IT技术社区.html

 

作者::  ★(attilax)>>>   绰号:老哇的爪子  全名::Attilax Akbar Al Rapanui 阿提拉克斯 阿克巴 阿尔 拉帕努伊  汉字名:艾龙,  EMAIL:1466519819@qq.com

转载请注明来源: http://blog.youkuaiyun.com/attilax

 

 

/atiplat_cms/src/com/attilax/jar/jarX.java

public List getAllClass(String jar_path) {

return JarFileView.files(jar_path);

}

 

 

打印JAR文件中的所有目录名和文件名

 

     Enumeration entries = jar.entries();

 

        //打印JAR文件中的所有目录名和文件名

        while(entries.hasMoreElements())

        {

            Object o = entries.nextElement();

            if(o.toString().contains(".class"))

            {

            String s=o.toString();

            s=s.replace(".class", "");

            s=s.replace("/", ".");

            li.add(s);

            }

            

         //   System.out.println(o);

        }

 

 

 

如何用反射获取继承自某类或实现某个接口的所有子类的集合-优快云论坛-youkuaiyun.com-中国最大的IT技术社区.html


转载于:https://www.cnblogs.com/attilax/p/5963286.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值