Java优秀类库Hutool使用示例
作者:尚少 发布时间:2021-12-09 18:12:06
标签:Java,Hutool,工具包
介绍
  日常的业务开发,我们会重复编写一些代码:日期和字符串相互转换、发送Http请求调用接口、拷贝对象等。所以为了避免重复编写,项目中会封装好相关方法,我们直接调用。但这样是不是还是挺麻烦,封装的方法我们还是得想得编,还得想的面面俱到。其实大可不必这么麻烦,Hutool是一个绝佳的解决方法,它是一款开源的java语言编写的工具类库,上述说的、还有其余非常多的工具性质的方法,都已封装好,非常全,几乎可以满足所有的业务诉求。
如何使用
  下面我们举几个例子,引入依赖:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.5</version>
</dependency>
  生成6位随机的数字(发送验证码功能要用到):
import cn.hutool.core.util.RandomUtil;
public class Test {
public static void main(String[] args) {
//生成6位随机0~9的字符串
String code = RandomUtil.randomNumbers(6);
//生成4位随机a~z的字符串
String code1 = RandomUtil.randomString(RandomUtil.BASE_CHAR, 4);
}
}
  对象的拷贝:
import cn.hutool.core.bean.BeanUtil;
public class Test {
public static void main(String[] args) {
//把A对象的属性值,复制到B对象的同名属性上(属性的大小写也要一样)
BeanUtil.copyProperties(new A(), new B());
//可变参数,A对象的age属性不复制到B对象
BeanUtil.copyProperties(new A(), new B(), "age");
//忽略属性的大小写,如果A对象有个accountStatus属性,
//B对象有个accountstatus属性,这时也能对应复制
BeanUtil.copyProperties(new A(), new B(), true);
//对象转Map对象
Map<String, Object> map = BeanUtil.beanToMap(new Person());
//第二个参数:是否转换成下划线形式,第三个参数:是否忽略为null的属性
Map<String, Object> map1 = BeanUtil.beanToMap(new Person(), false,
true);
}
}
  日期和字符串相互转换:
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import java.util.Date;
public class Test {
public static void main(String[] args) {
//转换成yyyy-MM-dd HH:mm:ss形式
String s = DateUtil.formatDateTime(new Date());
System.out.println(s);
//字符串转日期类型,DateTime继承自java.util.Date
DateTime date = DateUtil.parse("2023-01-22 18:35:20");
}
}
  发送Http请求,调用接口:
import cn.hutool.http.HttpUtil;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args) {
//发送get请求
String responseCode = HttpUtil.get("请求url");
Map<String, Object> map = new HashMap<>();
map.put("ip", "127.0.0.1");
map.put("id", 3);
//发送post请求
String responseCode1 = HttpUtil.post("请球url", map);
}
}
来源:https://blog.csdn.net/gs2436/article/details/128750193
0
投稿
猜你喜欢
- 开发项目的时候,表很多,是不可能一点点的自己去写xml ,dao文件的,这里就需要用到代码的自动生成工具了。第一步:导入jar包,当然,这之
- 参数说明CultureInfo.CurrentCulture获取当前线程的区域信息中,包括DateTimeFormat 日期显示格式(日期分
- 内部类的介绍定义在另外一个类中的类,叫内部类成员内部类1..new 创建成员内部类必须先创建外部类的实例,然后通过.new 创建内部类的对象
- ssm(spring springMVC mybatis)1.创建项目file->new->project2.新建的maven项
- 本文实例讲述了C#实现获取不同对象中名称相同属性的方法。分享给大家供大家参考。具体如下:【两个类】class demo1{ public s
- Socket里面的协议解析是Socket通讯程序设计中最复杂的地方,如果你的应用层协议设计或实现不佳,Socket通讯中常见的粘包,分包就难
- 动态SQL简介动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似的框架,你应该能理解根据不同条件拼接 SQ
- Qt窗体中默认会附加一个QstatusBar组件,状态栏组件位于主窗体的最下方,其作用是提供一个工具提示功能,当程序中有提示信息是可以动态的
- 本文实例讲述了C#集合遍历时删除和增加元素的方法。分享给大家供大家参考,具体如下:大多数时候,遍历集合元素的时候并不需要对元素进行增加或者删
- 通常在 java 中对文本、网络资源等操作起来是很繁杂的,要声明,读取,关闭三个阶段,还得考虑异常情况。假设我们要读取一段文本显示到控制台,
- 在前面的文章中有介绍到我们在微信web开发过程中常常用到的 【微信JSSDK中Config配置】 ,但是我们在真正的使用中我们不仅仅只是为了
- ThreadGroup的作用及方法ThreadGroup线程组,java对这个类的描述呢就是“线程组表示一组线程。此外,线程组还可以包括其他
- java里有数字long来表示大的整数,如果两个数字的范围超过了long,要做加法算法怎么做呢?这个问题在面试中经常碰到,如果之前没有经历的
- C++11 引入一个全新的线程库,包含启动和管理线程的工具,提供了同步(互斥、锁和原子变量)的方法,我将试图为你介绍这个全新的线
- 问题,打一个页面cpu暴涨,打开一次就涨100%,一会系统就卡的不行了。排查方法,因为是线上的linux,没有用jvm监控工具rim链接上去
- 1、修改全局配置文件(application.yml)server: port: 9001 servlet: &nb
- 本篇分析ArrayList的源码,在分析之前先跟大家谈一谈数组。数组可能是我们最早接触到的数据结构之一,它是在内存中划分出一块连续的地址空间
- java如何实现ftp上传?如何创建文件夹?最佳答案:准备条件:java实现ftp上传用到了commons-net-3.3.jar包首先建立
- 要求:取指定目录下面的所有图片,以表格的型式展示并显示该图片的相对路径。服务端代码: public partial class ViewIc
- 一、首先我们先创建一个Maven项目把我们需要的包先准备好 1.打开pom.xml文件引入依赖,以下是整个pom.xml文件<