博客详情

java项目中使用hutool工具箱 (原创)

作者: 朝如青丝暮成雪
发布时间:2020-01-17 09:49:18  文章分类:java编程   阅读(1334)  评论(0)


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/#/  官网文档






关键字:  hutool  java工具集
评论信息
暂无评论
发表评论

亲,您还没有登陆,暂不能评论哦! 去 登陆 | 注册

博主信息
   
数据加载中,请稍候...
文章分类
   
数据加载中,请稍候...
阅读排行
 
数据加载中,请稍候...
评论排行
 
数据加载中,请稍候...

Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1

鄂公网安备 42011102000739号