赞
踩
做下笔记吧,要不然感觉自己记不住。
先献祭一番:
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.7</version>
ClassScanner#scanAllPackage
说明:扫描包路径下所有class文件,包括其他加载的jar或者类
示例:
Set<Class<?>> classes = ClassScanner.scanAllPackage();
classes.forEach(System.out::println);
执行结果:
感觉为了找这么一个功能在网上搜索了好久,当然手动实现也很不错,但是感觉太麻烦了最终翻到了这个工具。
ClassScanner#scanPackage(java.lang.String)
**说明:**扫描该包路径下所有class
文件,传入参数为包路径如 com
、com.
、edu.lagou
等,调用结果会得到该包路径下的所有类。
示例:
Set<Class<?>> classes = ClassScanner.scanPackage();
classes.forEach(System.out::println);
结果:
注意: scanPackage
如果不传包路径的话默认只会扫描当前目录下存在的类,而不会扫描 classpath
其他路径下的类。如果有需要,可以使用scanAllPackage
。
扫描classpath下所有class文件,如果classpath下已经有类,不再扫描其他加载的jar或者类。
表示如果当前项目中包含 class 文件,则不再去扫描其他加载的 jar 或者 类。
比如当前我的 classpath 的路径如下:
// 获得Java ClassPath路径,不包括 jre
System.out.println(Arrays.toString(ClassUtil.getJavaClassPaths()));
第一条路径为当前我项目所在的绝对路径,我编写的 java
在编译后的 class
文件都存放在这里,后面两条路径是我的项目所依赖的jar
包。而ClassScanner.scanPackage()
在扫描到项目中存在编译好的 class
文件时,就不会再去扫描项目中所依赖的 jar
包中的class
。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。