Java 获取包所有class
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 获取包所有class相关的知识,希望对你有一定的参考价值。
我想获取一个包里的所有类的class,有点像spring的扫描器
我只能想到用File指定一个路径,然后获取所有的文件名,加一大堆字符处理,最后加载class
这种方法不仅繁琐 ,还有个致命的缺陷,本地路径和tomcat上的路径不一样。。
有没有比较好的方法推荐一下
既然是封到包里的,遍历确实是有点麻烦
思路如下:
输入包名
转换为资源路径名,即以‘/’替换‘.’
找到ClassLoader,并获得资源名对于的资源对象
判断资源对象是否为jar包内
4.1若否,则使用文件系统进行处理为文件夹,之后遍历名称进行类加载。这里直接使用资源路径名,会是其真实位置,不用关注因部署在tomcat上而产生的路径变化。
4.2若是,则构造一个jar文件类,使用jar操作类遍历内容,进行类加载。
实现参考(其实我只是把它的思路总结出来):http://guoliangqi.iteye.com/blog/644876
参考技术A 文件枚举,过滤不相关的文件。。。。。。。。追问能不能说具体一点呢
以上是关于Java 获取包所有class的主要内容,如果未能解决你的问题,请参考以下文章