Une sélection de questions et réponses Java apportées par l'éditeur php Yuzi, la question du jour : Incompatibilité de type : Impossible de convertir de DLL
J'essaie d'implémenter une liste doublement chaînée avec des classes de nœuds imbriquées. En raison de la nature générique de la classe, j'obtiens une erreur d'incompatibilité de type. Étant donné que la classe imbriquée n'est pas une classe statique, j'ai pensé qu'elle utiliserait l'opérateur de type générique de la classe supérieure.
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> }
Toute aide serait formidable !
au lieu de redéclarer le type générique e
。 node 构造函数应使用外部 dllca37468c879b0f5f3f64e26b1333f6f6
类中的泛型类型 e
. La solution est la suivante :
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; } } }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!