我試圖做到這一點下面的代碼:與集合轉換集合
Map<Node, TreeSet<String>> childrenNodes = new TreeMap<>(getAll());
我把下面getAllNodesAndEdges
方法的標題:
public Map<Node, Set<String>> getAll() {...}
我需要轉換一個普通地圖和設定在它的內部分爲TreeMap
和TreeSet
以進行分類打印。但是,第一段代碼有編譯錯誤,說"Cannot infer type arguments for TreeMap<>"
什麼是解決這個問題的最好方法?
編輯:下面
更多信息在Information.java
:
public Map<Node, Set<String>> getAll() {
return this.all;
}
然而,test1.java
需要使用代碼
Map<Node, HashSet<String>> all = getAll()
和test2.java
需要使用的代碼
Map<Node, TreeSet<String>> childrenNodes = new TreeMap<Node, TreeSet<String>>(getAll());
但兩者運行類型不匹配的編譯錯誤
第一:
Type mismatch: cannot convert from Map<Node,Set<String>> to Map<Node,HashSet<String>>
第二:
The construtor TreeMap<Node,TreeSet<String>>(Map<Node,Set<String>>) is undefined
您需要的類型參數在'<>'內。它們不能被自動推斷,正如錯誤說 –
或者你可以讓'getAll'自行返回一個TreeMap –
@ cricket_007我會怎麼做呢? – Michael