天天看點

100個Java工具類之25:Java工具包Hutool(下)

作者:一名小小程式員

本文主要講述:Java工具包Hutool(下)

前言:接着《強大的Java工具包Hutool(上)》來講,由于有大佬說标題中“強大的”并非名副其實,而且Hutool有很多隐藏bug不能亂用,作者經過思考後,覺得确實布局嚴謹,是以本文标題去除掉“強大的”字樣。

一、ExcelReader和ExcelWriter,實作Excel的解析與生成

//1.解析Excel,擷取到excel的所有資料
ExcelReader reader = ExcelUtil.getReader("F:/1.xlsx");
List<List<Object>> list = reader.read();
//2.生成Excel
ExcelWriter writer = ExcelUtil.getWriter("F:/1.xlsx");
writer.writeHeadRow(Arrays.asList("名稱", "數量"));
writer.writeRow(Arrays.asList("蘋果", 2));
writer.close();           

excel生成效果是這樣的:

100個Java工具類之25:Java工具包Hutool(下)

二、BeanUtil實作Map和Bean的互轉

//1.Map轉Bean
Map<String, Object> map = new HashMap<>();
map.put("name", "張三");
map.put("age", 18);
Persion person = BeanUtil.fillBeanWithMap(map, new Persion(), true);
System.out.println(person.getName() + ":" + person.getAge());
輸出結果:張三:18
//2.Bean轉Map
Persion p = new Persion();
p.setName("張三");
p.setAge(18);
Map<String, Object> map = BeanUtil.beanToMap(p);
System.out.println(map.toString());
輸出結果:{name=張三, age=18}           
100個Java工具類之25:Java工具包Hutool(下)

三、CronUtil建立全局定時任務

//生成定時任務,每2秒執行一次
CronUtil.schedule("*/2 * * * * *", new Task() {
     @Override
     public void execute() {
          System.out.println("現在時間:" + DateUtil.date());
     }
});
 CronUtil.setMatchSecond(true);
 CronUtil.start();
輸出結果:
現在時間:2023-07-24 15:17:40
現在時間:2023-07-24 15:17:42
現在時間:2023-07-24 15:17:44           
100個Java工具類之25:Java工具包Hutool(下)

四、CircleCaptcha生成圖形驗證碼

//生成圖形驗證碼,circleCaptcha.getCode()是驗證碼的值
CircleCaptcha circleCaptcha = CaptchaUtil.createCircleCaptcha(300, 200, 6, 10);
circleCaptcha.write("F:/1.png");           
100個Java工具類之25:Java工具包Hutool(下)

為什麼Hutool有很多bug,卻仍然受到國内廣大碼友的歡迎呢,原因大緻有三:

1、工具類種類多而全;2、全中文注釋;3、源碼簡單易讀

放張源碼截圖,一目了然

100個Java工具類之25:Java工具包Hutool(下)

Hutool作為一款國産軟體,盡管現階段他還存在很多問題,但我們要相信它會越來越好。在其曆次版本更新中,也證明了這一點。

但在中大型項目中,還是不建議使用Hutool。感謝你的閱讀~

100個Java工具類之25:Java工具包Hutool(下)

寫在最後:看了條友的評論後,個人受益匪淺,希望大家能多多指出問題,我會繼續努力,寫有用的文章。