核心(Hutool-core)工具类(类工具-ClassUtil)
类处理工具 ClassUtil
这个工具主要是封装了一些反射的方法,使调用更加方便。而这个类中最有用的方法是scanPackage方法,这个方法会扫描classpath下所有类,这个在Spring中是特性之一,主要为Hulu (opens new window)框架中类扫描的一个基础。下面介绍下这个类中的方法。
getShortClassName
获取完整类名的短格式如:cn.hutool.core.util.StrUtil -> c.h.c.u.StrUtil
isAllAssignableFrom
比较判断types1和types2两组类,如果types1中所有的类都与types2对应位置的类相同,或者是其父类或接口,则返回true
isPrimitiveWrapper
是否为包装类型
isBasicType
是否为基本类型(包括包装类和原始类)
getPackage
获得给定类所在包的名称,例如: cn.hutool.util.ClassUtil -> cn.hutool.util
scanPackage方法
此方法唯一的参数是包的名称,返回结果为此包以及子包下所有的类。方法使用很简单,但是过程复杂一些,包扫描首先会调用 getClassPaths方法获得ClassPath,然后扫描ClassPath,如果是目录,扫描目录下的类文件,或者jar文件。如果是jar包,则直接从jar包中获取类名。这个方法的作用显而易见,就是要找出所有的类,在Spring中用于依赖注入,我在Hulu (opens new window)中则用于找到Action类。当然,你也可以传一个ClassFilter对象,用于过滤不需要的类。
getClassPaths方法
此方法是获得当前线程的ClassPath,核心是Thread.currentThread().getContextClassLoader().getResources的调用。
getJavaClassPaths方法
此方法用于获得java的系统变量定义的ClassPath。
getClassLoader和getContextClassLoader方法
后者只是获得当前线程的ClassLoader,前者在获取失败的时候获取ClassUtil这个类的ClassLoader。
getDefaultValue
获取指定类型的默认值,默认值规则为:
如果为原始类型,返回0(boolean类型返回false)
非原始类型返回null
其它
更多详细的方法描述见:
https://apidoc.gitee.com/loolly/hutool/cn/hutool/core/util/ClassUtil.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!