提升Java效率:Hutool工具库详解

发布时间:2024-12-30 16:40

《烹饪工具与设备详解》提升烹饪效率 #生活乐趣# #美食烹饪乐趣# #美食烹饪书籍#

目录

●Hutool是什么?

●最甜的几块糖(Part 1)

●类型转换 

●日期与时间

●字段验证器

●配置工具

●日志工具

接下来的两篇文章,笔者将给大家安利一个能够明显提升Java开发效率的开源项目Hutool。官方对其描述为:A set of tools to keep java sweet。它其实是一套Java工具包,提供了许多与业务无关的常用方法,避免重复开发。截止笔者撰文,它在Github上已经收获了2033个Star,要知道,大名鼎鼎的Tomcat也不过2628,可见,它是受广大程序员推崇的。

笔者之所以要推荐这个开源项目给大家,最主要是因为其三大优势——

优势1:遵循Apache2.0开源许可协议,商业友好,可以无风险地接入使用;

优势2:提供的工具众多且实用,拥有完善的API手册,方便查找;

优势3:按需配置依赖,伸缩轻量灵活;

Hutool项目Github传送门:https://github.com/looly/hutool/

官方最新的API说明文档位于:https://apidoc.gitee.com/loolly/hutool/

使用示例位于:http://hutool.mydoc.io/#category_76195

●最甜的几块糖(Part 1)

以下章节将会重点介绍笔者觉得Hutool中最高效实用的几个类,涉及大量的举例代码,读者可以选择性的阅读,也可以作为手册,后期随时翻阅查看。需声明,以下代码均为笔者自行编写,非项目直接来源,大家无序对号入座,还请结合自己的实际业务去使用。

●类型转换 

该类几乎是一个万能的类型转换工具类,提供了大量平时常用的类型转换函数,相比传统写法,会更简洁。举例几个经典例子:

1、String转换为Date。不需要进行异常捕获,转换失败返回null,而不抛出异常;同时也提供单参数与双参数的重载函数,后者在转换失败时返回给定值,该特性Convert中其他大多数函数也具备,下同,不再赘述

String string = "2018-11-11 00:00:01";

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

try {

Date date = sdf.parse(string);

} catch (ParseException e) {

e.printStackTrace();

Date date = new Date();

}

String string = "2018-11-11 00:00:01";

Date date = Convert.toDate(string, new Date());

2、时间单位的转换,例如毫秒转化为天,避免了人为计算,也增加了代码的可读性,其中,该函数的第二第三个参数来自于java.util.concurrent下的枚举变量TimeUnit

long milliseconds = 145248462254L;

long day1 = milliseconds/1000/60/60/24;

long day2 = Convert.convertTime(milliseconds,TimeUnit.MILLISECONDS,TimeUnit.DAYS);

3、自定义转换器。如果Hutool提供的转换函数还不够用,想定义自己类的转换器,也是可以的。我们以代码为例,使用自定义转换器有两个步骤:一是继承Converter<T>接口,实现接口方法(插一句嘴,这是一个函数式接口,完全可以用Lambda的形式去实现,留给感兴趣的读者去尝试。本例将以传统方式书写);二是在转换器仓库ConverterRegistry中注册自定义的转换器,之后就可以使用了。

有如下两个类:报警树节点类与通用树节点类,二者不是继承关系,前者特有报警状态,但没有后者是否显示的标志位。

public class AlarmTreeNode {

private AlarmTreeNode childTreeNode;

private boolean isRoot;

private String alarmName;

private int deviceIndex;

private byte alarmStatus;

public AlarmTreeNode(){

this.childTreeNode = null;

this.isRoot = false;

this.alarmName = "";

this.deviceIndex = 0;

this.alarmStatus = 1;

}

public AlarmTreeNode(AlarmTreeNode childTreeNode, boolean isRoot, String alarmName, int deviceIndex, byte alarmStatus) {

this.childTreeNode = childTreeNode;

this.isRoot = isRoot;

this.alarmName = alarmName;

this.deviceIndex = deviceIndex;

this.alarmStatus = alarmStatus;

}

public AlarmTreeNode getChildTreeNode() {

return childTreeNode;

}

public void setChildTreeNode(AlarmTreeNode childTreeNode) {

this.childTreeNode = childTreeNode;

}

public boolean isRoot() {

return isRoot;

}

public void setRoot(boolean root) {

isRoot = root;

网址:提升Java效率:Hutool工具库详解 https://www.yuejiaxmz.com/news/view/608073

相关内容

这几个常用的工具类,让你生产力爆表!
Java时间管理攻略:轻松平分工作与生活,提升效率的秘诀
Java提醒接口:轻松掌握时间管理与效率提升技巧揭秘
Java技能提升指南
DataGrip 插件推荐指南:提升数据库开发效率的必备工具
工作效率提升解决方案
提高工作效率必备的生产力工具
Excel破解版:提升工作效率的必备工具
Java中String和byte[]间的转换
程序员提高工作和学习效率的几个软件工具

随便看看