工作中遇到的小坑合集
fastjson
- fastjson在使用複雜的集合類型的使用,要使用TypeReference.如下
Map<Long,PriorityQueue<Message>> map = JSONObject.parseObject(string,
new TypeReference<Map<Long, PriorityQueue<Message>>>() {});
-
PriorityQueue優先隊列,要求内部對象是Comparable
上訴的示例代碼,要求Message是Comparable,因為在優先隊列建立的時候,會要判斷元素之間的compare關系,而TypeReference沒法使得PriorityQueue能傳入compare對象,是以就要求内部對象本身是Comparable
-
fastJson的ref
當fastJson檢測到需要json字元串的對象中有重複的對象的時候,會使用ref字段,表明引用,通過這樣的方式來節約位元組。
-
PriorityQueue初始化的number
PriorityQueue在初始化的時候可以傳入個數字n,不要以為這樣就可以用TopN的堆了,實際上PriorityQueue會自動擴容的。
maven
maven jar 加載失敗的問題
今天給個子 module 添加 mybatis 代碼,在跑單元測試的時候,提示我缺少類,一看是 spring-jdbc 中的類,添加
<dependency>
依賴之後發現, 依舊提示缺少該類,檢視 maven 分析,發現确實沒有 spring-jdbc 的包,但是 pom 檔案中明明添加了。
解決問題:本質原因在于在 spring-jdbc 的引用之上還有一個其它工具的包,我暫時稱為 A.jar(公司内部 jar 包,不提及名字) ,由于這個 jar 包的 groupId 寫錯的,但是坑爹的是 IDEA 并沒有提示,(IDE 工具也不是萬能的) 導緻 maven 解析停在了這一句上,沒有加載 spring-jdbc 。将 A.jar 包的 groupId 修改回來之後,問題就解決了。