java项目中使用hutool工具箱

hutool介绍:

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

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

 

一、pom.xml中引入hutool依赖 


    
      cn.hutool
      hutool-all
      5.1.0
    

   
    
      org.projectlombok
      lombok
      1.18.6
      provided
    

二、使用示例(常用)

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 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 list=new ArrayList();
        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 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 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/#/  官网文档

你可能感兴趣的:(java编程,java,hutool)