我试图做到这一点下面的代码:与集合转换集合
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