Pilihan Soal Jawab java dibawakan oleh editor php Yuzi, soalan hari ini: Jenis tidak sepadan: Tidak dapat menukar daripada DLL
Saya cuba melaksanakan senarai terpaut dua kali dengan kelas nod bersarang. Disebabkan sifat generik kelas saya mendapat ralat tidak padan jenis. Memandangkan kelas bersarang bukan kelas statik, saya fikir ia akan menggunakan operator jenis generik dari kelas atas.
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> }
Sebarang bantuan pasti bagus!
bukannya mengisytiharkan semula jenis generik e
。 node 构造函数应使用外部 dllca37468c879b0f5f3f64e26b1333f6f6
类中的泛型类型 e
. Penyelesaiannya adalah seperti berikut:
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; } } }
Atas ialah kandungan terperinci Jenis ketidakpadanan: tidak boleh menukar daripada DLL