java项目中使用hutool工具箱

hutool介绍:

官网文档:https://hutool.cn/docs/#/

Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

 

一、pom.xml中引入hutool依赖 

<!--hutool 工具集合引入-->
    <dependency>
      <groupId>cn.hutool</groupId>
      <artifactId>hutool-all</artifactId>
      <version>5.1.0</version>
    </dependency>

   <!--可选 -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
      <version>1.18.6</version>
      <scope>provided</scope>
    </dependency>

二、使用示例(常用)

1、Assert断言

 public class AssertTest {
    @Test
    public void test1(){
        String a="abc"+"def";
        //断言为表达式的结果为真
        Assert.isTrue(a.equals("abcdef"));
        String  b="11";
        Assert.notNull(b);//断言对象不为null
        String c=null;
        Assert.isNull(c);//断言对象为null
        int d=8;
        Assert.checkBetween(d,1,10);//断言区间范围
    }
}

2、 字符串工具

public class StrTest {
    @Test
    public void test1(){
        String s="a b c ";
        Assert.isTrue(StrUtil.isNotEmpty(s));//不为empty
        Assert.isTrue(StrUtil.isNotBlank(s));//不为blank
        Assert.isTrue(StrUtil.cleanBlank(s).equals("abc"));//清除空白字符


        //字符串模板
        String s2= StrUtil.format("你好:{},欢迎来到{}的世界","小明","java");
        Assert.isTrue(s2.equals("你好:小明,欢迎来到java的世界"));

        //字符串模板 map存放变量值
        Map<String,Object> map=new HashMap<>();
        map.put("name","小明");
        map.put("language","java");
        String s3= StrUtil.format("你好:{name},欢迎来到{language}的世界",map);
        Assert.isTrue(s3.equals("你好:小明,欢迎来到java的世界"));

    }
}

3、集合工具

public class CollTest {
    @Test
    public void test1(){
        List<String> list=new ArrayList<String>();
        list.add("aa");
        list.add("bb");
        list.add("cc");
        //集合list是否为非空
        Assert.isTrue(CollUtil.isNotEmpty(list));
    }
}

4、日期工具

public class DateTest {

    @Test
    public void test1() {

        //返回标准的yyyy-MM-dd HH:mm:ss格式的日期字符串
        String now = DateUtil.now();
        System.out.println(now);
        Date date = new Date();
        //日期对象格式化输出
        String s = DateUtil.format(date, "yyyy-MM-dd");
        System.out.println(s);
        //将日期字符串解析为日期对象
        Date d2= DateUtil.parse("2020-01-17","yyyy-MM-dd");
        System.out.println(d2);
    }
}

5、Object对象相关工具

public class ObjectTest {

    @Test
    public void test1(){
        //对象的序列化和反序列化
        Student st=new Student("张三",18,"北京");

        //对象序列化为字节
        byte[] bytes= ObjectUtil.serialize(st);

         //将字节数据写入文件
        FileUtil.writeBytes(bytes,new File("d:/st.obj"));

        //从文件中读取字节数据
        byte[] bs=FileUtil.readBytes(new File("d:/st.obj"));

        //将字节数据放序列化为对象
        Student s=   ObjectUtil.unserialize(bs);
        System.out.println(s);//打印对象
    }
    @Test
    public void test2(){
        //对象深克隆 ,使用流
        Student s1=new Student("张三",22,"北京");
        Student s2= ObjectUtil.cloneByStream(s1);

        //改变克隆对象的属性
        s2.setAddress("南京");

        Assert.isTrue(s1!=s2);//两个对象是不同的

        //打印两个对象,发现各自有自己独立的属性数据。
        System.out.println(s1);
        System.out.println(s2);


    }
}

6、Bean工具类

public class BeanTest {
    @Test
    public void test1(){
        Person p=new Person();
        p.setName("王大锤");
        p.setAge(23);

        p.setHobbies(Arrays.asList("篮球","排球","游泳"));

        Map<String,Integer> m=new HashMap<>();
        m.put("chinese",88);
        m.put("math",89);
        m.put("english",90);
        p.setGrades(m);

        //类似spring的EL表达式 ,根据path表达式取对象的属性
        String s=  BeanUtil.getProperty(p,"hobbies[0]");
        System.out.println(s);

        Integer score= BeanUtil.getProperty(p,"grades['math']");
        System.out.println(score);

    }
    @Test
    public void test2(){
        Person p=new Person("大锤",23);

        //将bean转为map
        Map<String,Object> m= BeanUtil.beanToMap(p);
        System.out.println(m);
    }
    @Test
    public void test3(){
        Person p1=new Person("大锤",23);
        Person p2=new Person();

        //对象的属性复制,类似于commom.lang3包中的BeanUtil.copyProperties
        BeanUtil.copyProperties(p1,p2);
        System.out.println(p2);
    }

}

7、其他更多工具类,如http相关、加解密相关、文件io相关、 反射/类加载 、邮件等等不一一举例了,请参照官网

https://hutool.cn/  官网

https://hutool.cn/docs/#/  官网文档

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值