【Java】Hutool——Java 开发的万能工具库,告别重复造轮子
日常做 Java 后端开发时,我们总会反复写类型转换、日期处理、文件读写、手机号校验这类通用工具方法,每次新建项目都要复制一堆工具类,繁琐还容易出 BUG。最近深耕工具类库,发现Hutool几乎包揽了开发中 80% 的通用操作,封装简洁、API 易懂,今天结合实战代码,分享 Hutool 常用工具。
一、Maven 快速引入依赖
使用 Hutool 最简单的方式就是 Maven 引入,推荐使用全量依赖,小项目无需逐个导入子模块:
<!-- Hutool全量依赖 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.24</version>
</dependency>
Gradle 项目直接:implementation 'cn.hutool:hutool-all:5.8.24'
二、常用工具类实战演示
1. Convert:万能类型转换器
传统 Java 类型转换需要手动判空、捕获异常,Convert 自带默认值兜底,避免空指针:
import cn.hutool.core.convert.Convert;
public class ConvertDemo {
public static void main(String[] args) {
// 字符串转int,转换失败返回默认值0
int num = Convert.toInt("123",0);
int errNum = Convert.toInt("abc",0);
System.out.println(num); // 123
System.out.println(errNum); // 0
// 数组转集合
String[] arr = {"Java","MySQL","Linux"};
List<?> list = Convert.toList(arr);
System.out.println(list);
}
}
2. DateUtil:日期处理神器
原生 Date、SimpleDateFormat 线程不安全、代码冗长,DateUtil 一行搞定日期格式化、日期偏移、时间差计算:
import cn.hutool.core.date.DateUtil;
import java.util.Date;
public class DateDemo {
public static void main(String[] args) {
// 获取当前日期字符串
String now = DateUtil.now();
System.out.println("当前时间:"+now);
// 字符串转日期
Date parseDate = DateUtil.parse("2026-06-02");
// 加3天
Date after3Day = DateUtil.offsetDay(parseDate,3);
System.out.println("三天后:"+DateUtil.formatDate(after3Day));
// 计算两个日期相差天数
long day = DateUtil.betweenDay(new Date(),after3Day,true);
System.out.println("间隔天数:"+day);
}
}
3. StrUtil:字符串工具,替代 StringUtils
判空、截取、拼接、去空格全封装,开发高频使用:
import cn.hutool.core.util.StrUtil;
public class StrDemo {
public static void main(String[] args) {
String str1 = "";
String str2 = null;
String str3 = " Hutool ";
// 判断空串/Null
System.out.println(StrUtil.isBlank(str1)); // true
System.out.println(StrUtil.isBlank(str2)); // true
System.out.println(StrUtil.isNotBlank(str3));//true
// 去除首尾空格
String trim = StrUtil.trim(str3);
System.out.println(trim);
}
}
4. IdcardUtil:身份证信息校验与解析
做实名认证需求必备,支持 18 位大陆身份证、老版 15 位身份证校验:
import cn.hutool.core.util.IdcardUtil;
public class IdCardDemo {
public static void main(String[] args) {
String idCard = "3401*********1234";
// 校验身份证合法性
boolean valid = IdcardUtil.isValidCard(idCard);
System.out.println("身份证是否合法:"+valid);
// 获取出生年月日
String birth = IdcardUtil.getBirthByIdCard(idCard);
System.out.println("出生日期:"+birth);
}
}
5. SecureUtil:加解密工具
MD5、AES、RSA 等常用加密一行调用,不用手动实现加密算法:
import cn.hutool.crypto.SecureUtil;
public class EncryptDemo {
public static void main(String[] args) {
String password = "123456";
// MD5加密
String md5 = SecureUtil.md5(password);
System.out.println("密码MD5:"+md5);
}
}
6. Dict:灵活扩展 Map
Dict 继承 HashMap,键不限制类型,常用在接口参数封装:
import cn.hutool.core.lang.Dict;
public class DictDemo {
public static void main(String[] args) {
Dict dict = Dict.create()
.set("username","云扬")
.set("blog","yunyanglib.cn")
.set("age",22);
System.out.println(dict.getStr("username"));
System.out.println(dict);
}
}
三、小众但实用的工具类
- FileUtil/IoUtil:文件创建、复制、删除、流关闭,不用手动关闭 IO 流,自动释放资源;
- Validator:手机号、邮箱、IP 地址正则校验,
Validator.isMobile("138xxxx1234")直接判断; - QrCodeUtil:快速生成二维码,不用引入第三方二维码依赖;
- ZipUtil:文件夹批量压缩解压,处理附件打包超方便。


