随笔分类 - java / hutool工具
hutool工具
摘要:在Java中,对文件、文件夹打包,压缩是一件比较繁琐的事情,我们常常引入Zip4j (opens new window)进行此类操作。但是很多时候,JDK中的zip包就可满足我们大部分需求。ZipUtil就是针对java.util.zip做工具化封装,使压缩解压操作可以一个方法搞定,并且自动处理文件
阅读全文
摘要:介绍 在分布式环境中,唯一ID生成应用十分广泛,生成方法也多种多样,Hutool针对一些常用生成策略做了简单封装。 唯一ID生成器的工具类,涵盖了: UUID ObjectId(MongoDB) Snowflake(Twitter) 使用 UUID UUID全称通用唯一识别码(universally
阅读全文
摘要:说明 RandomUtil主要针对JDK中Random对象做封装,严格来说,Java产生的随机数都是伪随机数,因此Hutool封装后产生的随机结果也是伪随机结果。不过这种随机结果对于大多数情况已经够用。 使用 RandomUtil.randomInt 获得指定范围内的随机数 例如我们想产生一个[10
阅读全文
摘要:介绍 数组工具中的方法在2.x版本中都在CollectionUtil中存在,3.x之后版本(包括4.x版本)中拆分出来作为ArrayUtil。数组工具类主要针对原始类型数组和泛型数组相关方法进行封装。 数组工具类主要是解决对象数组(包括包装类型数组)和原始类型数组使用方法不统一的问题。 方法 判空
阅读全文
摘要:在Java世界中,如果想与其它语言打交道,处理调用接口,或者JNI,就是通过本地命令方式调用了。Hutool封装了JDK的Process类,用于执行命令行命令(在Windows下是cmd,在Linux下是shell命令)。 方法 基础方法 exec 执行命令行命令,返回Process对象,Proce
阅读全文
摘要:枚举(enum)算一种“语法糖”,是指一个经过排序的、被打包成一个单一实体的项列表。一个枚举的实例可以使用枚举项列表中任意单一项的值。枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色、方式、类别、状态等等数目有限、形式离散、表达又极为明确的量。Java从JDK5开始,引入了对枚举的支持。 E
阅读全文
摘要:类处理工具 ClassUtil 这个工具主要是封装了一些反射的方法,使调用更加方便。而这个类中最有用的方法是scanPackage方法,这个方法会扫描classpath下所有类,这个在Spring中是特性之一,主要为Hulu (opens new window)框架中类扫描的一个基础。下面介绍下这个
阅读全文
摘要:在Hutool群友的强烈要求下,在3.2.0+ 中新增了ClipboardUtil这个类用于简化操作剪贴板(当然使用场景被局限)。 使用 ClipboardUtil 封装了几个常用的静态方法: 通用方法 getClipboard 获取系统剪贴板 set 设置内容到剪贴板 get 获取剪贴板内容 针对
阅读全文
摘要:由来 分页工具类并不是数据库分页的封装,而是分页方式的转换。在我们手动分页的时候,常常使用页码+每页个数的方式,但是有些数据库需要使用开始位置和结束位置来表示。很多时候这种转换容易出错(边界问题),于是封装了PageUtil工具类。 使用 transToStartEnd 将页数和每页条目数转换为开始
阅读全文
摘要:针对 java.lang.reflect.Type 的工具类封装,最主要功能包括: 获取方法的参数和返回值类型(包括Type和Class) 获取泛型参数类型(包括对象的泛型参数或集合元素的泛型类型) 方法 首先我们定义一个类: public class TestClass { public List
阅读全文
摘要:Java的反射机制,可以让语言变得更加灵活,对对象的操作也更加“动态”,因此在某些情况下,反射可以做到事半功倍的效果。Hutool针对Java的反射机制做了工具化封装,封装包括: 获取构造方法 获取字段 获取字段值 获取方法 执行方法(对象方法和静态方法) 使用 获取某个类的所有方法 Method[
阅读全文
摘要:在我们的日常使用中,有些方法是针对Object通用的,这些方法不区分何种对象,针对这些方法,Hutool封装为ObjectUtil。 方法 默认值 借助于lambda表达式,ObjectUtil可以完成判断给定的值是否为null,不为null执行特定逻辑的功能。 final String dateS
阅读全文
摘要:由来 在日常编码中,我们接触最多的除了JSON外,就是XML格式了,一般而言,我们首先想到的是引入Dom4j包,却不知JDK已经封装有XML解析和构建工具:w3c dom。但是由于这个API操作比较繁琐,因此Hutool中提供了XmlUtil简化XML的创建、读和写的过程。 使用 读取XML 读取X
阅读全文
摘要:介绍 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址。表示互联网上的资源,如网页或者FTP地址。在Java中,也可以使用URL表示Classpath中的资源(Resource)地址。 方法 获取URL对象 URLUtil.url 通过一个字符
阅读全文
摘要:介绍 HashUtil其实是一个hash算法的集合,此工具类中融合了各种hash算法。 方法 这些算法包括: additiveHash 加法hash rotatingHash 旋转hash oneByOneHash 一次一个hash bernstein Bernstein's hash univer
阅读全文
摘要:转义和反转义工具类Escape / Unescape。escape采用ISO Latin字符集对指定的字符串进行编码。所有的空格符、标点符号、特殊字符以及其他非ASCII字符都将被转化成%xx格式的字符编码(xx等于该字符在字符集表里面的编码的16进制数字)。 此类中的方法对应Javascript中
阅读全文
摘要:十六进制(简写为hex或下标16)在数学中是一种逢16进1的进位制,一般用数字0到9和字母A到F表示(其中:AF即1015)。例如十进制数57,在二进制写作111001,在16进制写作39。 像java,c这样的语言为了区分十六进制和十进制数值,会在十六进制数的前面加上 0x,比如0x20是十进制的
阅读全文
摘要:这个工具的用处类似于Apache Commons Lang (opens new window)中的StringUtil,之所以使用StrUtil而不是使用StringUtil是因为前者更短,而且Str这个简写我想已经深入人心了,大家都知道是字符串的意思。常用的方法例如isBlank、isNotBl
阅读全文
摘要:什么是ClassPath 简单说来ClassPath就是查找class文件的路径,在Tomcat等容器下,ClassPath一般是WEB-INF/classes,在普通java程序中,我们可以通过定义-cp或者-classpath参数来定义查找class文件的路径,这些路径就是ClassPath。
阅读全文
摘要:ResourceUtil提供了资源快捷读取封装。 使用 ResourceUtil中最核心的方法是getResourceObj,此方法可以根据传入路径是否为绝对路径而返回不同的实现。比如路径是:file:/opt/test,或者/opt/test都会被当作绝对路径,此时调用FileResource来读
阅读全文