类工具-ClassUtil

类处理工具 ClassUtil

这个工具主要是封装了一些反射的方法,使调用更加方便。而这个类中最有用的方法是scanPackage方法,这个方法会扫描classpath下所有类,这个在Spring中是特性之一,主要为Hulu框架中类扫描的一个基础。下面介绍下这个类中的方法。

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中则用于找到Action类。当然,你也可以传一个ClassFilter对象,用于过滤不需要的类。

getClassPaths方法

此方法是获得当前线程的ClassPath,核心是Thread.currentThread().getContextClassLoader().getResources的调用。

getJavaClassPaths方法

此方法用于获得java的系统变量定义的ClassPath。

getClassLoader和getContextClassLoader方法

后者只是获得当前线程的ClassLoader,前者在获取失败的时候获取ClassUtil这个类的ClassLoader。

getDefaultValue

获取指定类型分的默认值,默认值规则为:

  • 如果为原始类型,返回0
  • 非原始类型返回null

其它

更多详细的方法描述见:

https://apidoc.gitee.com/loolly/hutool/cn/hutool/core/util/ClassUtil.html

看完两件小事

如果你觉得这篇文章对你挺有启发,我想请你帮我两个小忙:

  1. 关注我们的 GitHub 博客,让我们成为长期关系
  2. 把这篇文章分享给你的朋友 / 交流群,让更多的人看到,一起进步,一起成长!
  3. 关注公众号 「方志朋」,公众号后台回复「资源」 免费领取我精心整理的前端进阶资源教程

JS中文网是中国领先的新一代开发者社区和专业的技术媒体,一个帮助开发者成长的社区,目前已经覆盖和服务了超过 300 万开发者,你每天都可以在这里找到技术世界的头条内容。欢迎热爱技术的你一起加入交流与学习,JS中文网的使命是帮助开发者用代码改变世界

results matching ""

    No results matching ""