GitHub精选 | 一个小而全的Java工具类库
《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个Java工具类库——Hutool。
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
Hutool包含的组件:
依赖:
- Maven
cn.hutool
hutool-all
5.7.13
- Gradle
implementation 'cn.hutool:hutool-all:5.7.13'
示例:
- 类型转换工具类-Convert
Convert类封装了针对Java常见类型的转换,用于简化类型转换。
/**
* 转换为字符串
*/
int a = 1;
//aStr为"1"
String aStr = Convert.toStr(a);
long[] b = {1,2,3,4,5};
//bStr为:"[1, 2, 3, 4, 5]"
String bStr = Convert.toStr(b);
/**
* 转换为集合
*/
Object[] a = {"a", "你", "好", "", 1};
List> list = Convert.convert(List.class, a);
//从4.1.11开始可以这么用
List> list = Convert.toList(a);
- 日期时间工具-DateUtil
DateUtil封装的主要是日期和字符串之间的转换,以及提供对日期的定位(一个月前等等)
/**
* Date、long、Calendar之间的相互转换
*/
//当前时间
Date date = DateUtil.date();
//当前时间
Date date2 = DateUtil.date(Calendar.getInstance());
//当前时间
Date date3 = DateUtil.date(System.currentTimeMillis());
//当前时间字符串,格式:yyyy-MM-dd HH:mm:ss
String now = DateUtil.now();
//当前日期字符串,格式:yyyy-MM-dd
String today= DateUtil.today();
- 文件工具类-FileUtil
FileUtil类包含以下几类操作工具:
- 文件操作:包括文件目录的新建、删除、复制、移动、改名等
- 文件判断:判断文件或目录是否非空,是否为目录,是否为文件等等。
- 绝对路径:针对ClassPath中的文件转换为绝对路径文件。
- 文件名:主文件名,扩展名的获取
- 读操作:包括类似IoUtil中的getReader、readXXX操作
- 写操作:包括getWriter和writeXXX操作
- 唯一ID工具-IdUtil
/**
* 生成UUID
*/
//生成的UUID是带-的字符串,类似于:a5c8a5e8-df2b-4706-bea4-08d0939410e3
String uuid = IdUtil.randomUUID();
//生成的是不带-的字符串,类似于:b17f24ff026d40949c85a24f4f375d42
String simpleUUID = IdUtil.simpleUUID();
/**
* 生成Snowflake
*/
//参数1为终端ID
//参数2为数据中心ID
Snowflake snowflake = IdUtil.getSnowflake(1, 1);
long id = snowflake.nextId();
- 信息脱敏工具-DesensitizedUtil
// 身份证号5***************1X
DesensitizedUtil.idCardNum("51343620000320711X", 1, 2);
// 手机号180****1999
DesensitizedUtil.mobilePhone("18049531999");
更多内容请大家自行前往阅读Hutool参考文档。
Gitee:https://gitee.com/dromara/hutool