网站首页 > java教程 正文
《GitHub精选》是我们分享Github中优质项目的栏目,包括技术、学习、实用与各种有趣的内容。本期推荐的是一个Java工具类库——Hutool。
Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅。Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。
Hutool包含的组件:
依赖:
- Maven
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.13</version>
</dependency>
- 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
猜你喜欢
- 2024-09-10 带你入门Java之每日3分钟Java——初识Java
- 2024-09-10 述说Java与.Net (Core)。(.net java区别)
- 2024-09-10 针对Java开发大神而言,这9个网站必不可少
- 2024-09-10 Java:Java快速入门(java快速入门教程)
- 2024-09-10 windows系统的服务器快速部署java项目环境地址
- 2024-09-10 Java基础,Java方法调用、方法重载、参数及Java的递归
- 2024-09-10 初识Java(初识java的分析总结)
- 2024-09-10 使用java做爬虫获取网络资源下载403错误解决办法
- 2024-09-10 优秀Java程序员应该知道的20个实用开源库
- 2024-09-10 java如何实现获取客户端ip地址?若不会,我便手把手教你「详细」
你 发表评论:
欢迎- 最近发表
-
- java8的stream使用小示例(java stream的用法)
- Java 中的 Lambda 表达式深入解析:从语法糖到高阶函数
- 实战解析Android架构设计原则(android的架构)
- 搭建mcp服务器用java17,可是项目开发用的是java8怎么实现?
- Java Stream:集合处理的api(java集合流操作)
- Java 8新特性全面剖析:让编程变得更简单优雅
- Java 8新特性全面解析与最佳实践:掌握未来编程的艺术
- Java 8日期时间API新特性揭秘与深度解析
- Java 8 Stream API 详解(java.stream)
- Java机器学习库(Java ML)(二、聚类)
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)