Eine Auswahl von Java-Fragen und Antworten des PHP-Editors Yuzi, heutige Frage: Typkonflikt: Konvertierung von DLL
Ich versuche, eine doppelt verknüpfte Liste mit verschachtelten Knotenklassen zu implementieren. Aufgrund der generischen Natur der Klasse erhalte ich eine Fehlermeldung bezüglich der Typinkongruenz. Da es sich bei der verschachtelten Klasse nicht um eine statische Klasse handelt, dachte ich, sie würde den generischen Typoperator der obersten Klasse verwenden.
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> }
Jede Hilfe wäre großartig!
statt Neudeklaration des generischen Typs e
。 node 构造函数应使用外部 dll<e>
类中的泛型类型 e
. Die Lösung lautet wie folgt:
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; } } }
Das obige ist der detaillierte Inhalt vonTypkonflikt: Konvertierung von DLL