当前位置:   article > 正文

Hutool 中的 ClassScanner 工具

classscanner

做下笔记吧,要不然感觉自己记不住。
先献祭一番:

<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.7</version>
  • 1
  • 2
  • 3
ClassScanner#scanAllPackage

说明:扫描包路径下所有class文件,包括其他加载的jar或者类
示例

Set<Class<?>> classes = ClassScanner.scanAllPackage();
classes.forEach(System.out::println);
  • 1
  • 2

执行结果:
在这里插入图片描述
感觉为了找这么一个功能在网上搜索了好久,当然手动实现也很不错,但是感觉太麻烦了最终翻到了这个工具。

ClassScanner#scanPackage(java.lang.String)

**说明:**扫描该包路径下所有class文件,传入参数为包路径如 comcom.edu.lagou 等,调用结果会得到该包路径下的所有类。
示例:

Set<Class<?>> classes = ClassScanner.scanPackage();
classes.forEach(System.out::println);
  • 1
  • 2

结果:
在这里插入图片描述
注意: scanPackage 如果不传包路径的话默认只会扫描当前目录下存在的类,而不会扫描 classpath 其他路径下的类。如果有需要,可以使用scanAllPackage

在这里插入图片描述

扫描classpath下所有class文件,如果classpath下已经有类,不再扫描其他加载的jar或者类。

表示如果当前项目中包含 class 文件,则不再去扫描其他加载的 jar 或者 类。

比如当前我的 classpath 的路径如下:

// 获得Java ClassPath路径,不包括 jre
System.out.println(Arrays.toString(ClassUtil.getJavaClassPaths()));
  • 1
  • 2

在这里插入图片描述
第一条路径为当前我项目所在的绝对路径,我编写的 java 在编译后的 class 文件都存放在这里,后面两条路径是我的项目所依赖的jar包。而ClassScanner.scanPackage() 在扫描到项目中存在编译好的 class 文件时,就不会再去扫描项目中所依赖的 jar 包中的class

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/240365
推荐阅读
相关标签
  

闽ICP备14008679号