php小編柚子帶來的java問答精選,今日問題:類型不符:無法從 DLL
我正在努力實作帶有巢狀節點類別的雙向鍊錶。由於類別的通用性質,我收到類型不匹配錯誤。由於嵌套類別不是靜態類,我認為它將使用頂層類中的泛型類型運算符。
public class DLL <E> { public class Node<E>{ private E element; private Node<E> prev; private Node<E> next; public <E> Node (E element, Node <E> prev, Node<E> next){ this.element = element; // Error: Type mismatch: cannot convert from E to E this.prev = prev; // Error: Type mismatch: cannot convert from DLL<E>.Node<E> to DLL<E>.Node<E> this.next = next;// Error: Type mismatch: cannot convert from DLL<E>.Node<E> to DLL<E>.Node<E> }
任何幫助都會很棒!
而不是重新宣告泛型類型 e
。 node 建構子應使用外部 dll<e>
類別中的泛型類型 e
。解決辦法如下:
public class DLL<E> { public class Node { private E element; private Node prev; private Node next; public Node(E element, Node prev, Node next) { this.element = element; this.prev = prev; this.next = next; } } }
以上是類型不符:無法從 DLL