我有一個Node類:的Java創建普通的地圖對象
public class Node<T extends MySuperClass> {
private T data;
private Node<? extends MySuperClass> parent;
private List<Node<? extends MySuperClass>> children;
public Node(T data, Node<? extends MySuperClass> parent, List<Node<? extends MySuperClass>> children) {
this.data = data;
this.parent = parent;
this.children = children;
}
public T getData() {
return data;
}
public Node<? extends MySuperClass> getParent() {
return parent;
}
public List<Node<? extends MySuperClass>> getChildren() {
return children;
}
public void setData(T data) {
this.data = data;
}
public void setParent(Node<? extends MySuperClass> parent) {
this.parent = parent;
}
public void setChildren(List<Node<? extends MySuperClass>> children) {
this.children = children;
}
}
我需要創建地圖通用節點的上述定義的。我必須寫這樣的事情
List<Map<Long, Node<? extends MySuperClass>>> tree = new ArrayList<Map<Long, Node< extends MySuperClass>>>();
當我嘗試地圖的一個實例添加到列表中
public MyClass extends MySuperClass{
}
Map<Long, Node<MyClass>> myMap = new HashMap<Long,Node<MyClass>>();
tree.add(myMap);
編譯器給了我下面的消息:
The method add(Map<Long,Node<? extends MySuperClass>>) in the type List<Map<Long,Node<? extends MySuperClass>>> is not applicable for the arguments (Map<Long,Node<MyClass>>)
語法上它是正確的。我無法理解爲什麼它不起作用。
我不好,答案是一半,試圖現在想起來.. – 2014-11-06 15:14:41
能否請您解決此行'地圖<龍,節點> MYMAP =新的ArrayList <龍,節點>'?寫下你真正在那裏使用的東西。 –
Tom
2014-11-06 15:27:28
@Tom是那也困擾着我,但是如果他想要使用來自Map(接口或類??)的方法,但他想要一個數組列表? – 2014-11-06 15:28:15