iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0

由於LINE PAY APIs官方範例程式裡出現了Lists.newArrayList()的方法~於是就有了這邊Guava的補充文!
程式碼:
https://ithelp.ithome.com.tw/upload/images/20230908/20160220O0SKGY37bK.png
圖片內的32、34行出現的Lists.newArrayList() 錯誤,而我們今天要說的就是Guava中對集合類型構造方法的封裝,拿Lists.newArrayList()舉例。

提醒:對於Java7以及之後的版本,本方法不必要且應被棄用,建議直接使用ArrayList的構造方法,可以利用新的「菱形語法」的優勢。
官方源碼:
https://ithelp.ithome.com.tw/upload/images/20230908/20160220llmnNFxjfm.png

菱形語法其實就是泛型中的<>!
Guava:
Guava是一個Goolge開源的Java通用library,包含多種被google的java專案廣泛使用的核心庫,例如:集合、快取 、字串處理、I/O、算術運算、反射、多執行序等工具。本文將介紹如何導入guava lib 及 guava collection的使用。

那要如何使用呢!
導入Library:

<dependency>
  <groupId>com.google.guava</groupId>
  <artifactId>guava</artifactId>
  <version>28.1-jre</version>
  <!-- or, for Android: -->
  <version>28.1-android</version>
</dependency>

Pom檔引入完後建立一個測試用的 ListTest的class吧!
程式碼:
https://ithelp.ithome.com.tw/upload/images/20230908/20160220H1EeuEwZ1v.png
發現Lists.newArrayList() 跟 new ArrayList<>() 效果是一樣的。

那為了我們後續LINE PAY APIs的測試內容,就先把範例程式改成Arrays.asList()的寫法囉~:
https://ithelp.ithome.com.tw/upload/images/20230908/20160220njeeNUILL4.png
剩下44行 toJson的錯誤就等到後面的內容再來修正。
到這邊LINE PAY APIs範例程式的java bean都建置也修正完畢了!

當然Guava工具類的內容不止Lists還有更多其他的功能:
不可變集合:ImmutableList
元素可重複的Set:Multiset
https://ithelp.ithome.com.tw/upload/images/20230908/20160220BuTu33qv5Y.png
key與value可互為鍵值,但鍵與值不可重複:BiMap
https://ithelp.ithome.com.tw/upload/images/20230908/201602209HYBFAs3v4.png
擁有"row"和"column"兩個鍵值的Map:Table
https://ithelp.ithome.com.tw/upload/images/20230908/20160220qo9TbgN9Lp.png

但目前Guava工具類的功能在java8後都陸陸續續的有了~
所以到底用不用Guava的集合創建方法,還是看大家的個人喜好吧!

有興趣的話可以再多看看網路上的文章:
昕力資訊:https://www.tpisoftware.com/tpu/articleDetails/1713


上一篇
Day7 – 根據LINE PAY APIs 官方文件建立相對應的java bean!
下一篇
Day9 – 串接LINE PAY APIs需要知道的事!(1)
系列文
就算是初學者也能實作成功的使用java + spring 實現串接Line Pay APIs!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言