Jadual Kandungan
Kandungan soalan
Penyelesaian
Rumah Java Jenis ketidakpadanan: tidak boleh menukar daripada DLL.Node kepada DLL.Node

Jenis ketidakpadanan: tidak boleh menukar daripada DLL.Node kepada DLL.Node

Feb 22, 2024 pm 01:10 PM
Ralat kompilasi

Pilihan Soal Jawab java dibawakan oleh editor php Yuzi, soalan hari ini: Jenis tidak sepadan: Tidak dapat menukar daripada DLL.Node kepada DLL.Node. Masalahnya biasanya melibatkan ralat kompilasi yang disebabkan oleh pemadaman jenis generik dan perlu diselesaikan dengan penukaran jenis atau reka bentuk semula kod. Di Jawa, jenis sebenar generik dipadamkan selepas penyusunan, menyebabkan pengkompil tidak mengenal pasti jenisnya dengan tepat. Dengan memahami prinsip pemadaman generik dan penggunaan penukaran jenis yang fleksibel, masalah sedemikian boleh diselesaikan dengan berkesan.

Kandungan soalan

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>
        }
Salin selepas log masuk

Sebarang bantuan pasti bagus!

Penyelesaian

bukannya mengisytiharkan semula jenis generik e。 node 构造函数应使用外部 dll<e> 类中的泛型类型 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;
        }
    }

}
Salin selepas log masuk

Atas ialah kandungan terperinci Jenis ketidakpadanan: tidak boleh menukar daripada DLL.Node kepada DLL.Node. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Penjelasan terperinci tentang warisan fungsi C++: Bagaimana untuk menggunakan 'penunjuk kelas asas' dan 'penunjuk kelas terbitan' dalam warisan? Penjelasan terperinci tentang warisan fungsi C++: Bagaimana untuk menggunakan 'penunjuk kelas asas' dan 'penunjuk kelas terbitan' dalam warisan? May 01, 2024 pm 10:27 PM

Dalam pewarisan fungsi, gunakan "penunjuk kelas asas" dan "penunjuk kelas terbitan" untuk memahami mekanisme pewarisan: apabila penuding kelas asas menghala ke objek kelas terbitan, transformasi ke atas dilakukan dan hanya ahli kelas asas diakses. Apabila penuding kelas terbitan menghala ke objek kelas asas, hantaran ke bawah dilakukan (tidak selamat) dan mesti digunakan dengan berhati-hati.

Bagaimana untuk menjalankan bahasa C dalam notepad++ Bagaimana untuk menjalankan bahasa C dalam notepad++ Apr 08, 2024 am 10:06 AM

Notepad++ sendiri tidak boleh menjalankan program bahasa C dan memerlukan pengkompil luaran untuk menyusun dan melaksanakan kod. Untuk menggunakan pengkompil luaran, anda boleh menyediakannya seperti berikut: 1. Muat turun dan pasang pengkompil bahasa C 2. Cipta alat tersuai dalam Notepad++ dan konfigurasikan laluan dan parameter fail boleh laku pengkompil; atur cara dan simpan dengan sambungan fail .c 4. Pilih fail program bahasa C dan pilih alat tersuai dari menu "Jalankan" untuk menyusun 5. Lihat hasil kompilasi dan keluarkan ralat kompilasi atau mesej kejayaan. Jika kompilasi berjaya, fail boleh laku akan dihasilkan.

Apakah maksud val dalam java Apakah maksud val dalam java Apr 25, 2024 pm 10:06 PM

Kata kunci val dalam Java digunakan untuk mengisytiharkan pembolehubah tempatan yang tidak berubah, iaitu nilainya tidak boleh diubah setelah ditetapkan. Ciri-cirinya ialah: Kebolehubahan: Setelah dimulakan, pembolehubah val tidak boleh ditugaskan semula. Skop setempat: pembolehubah val hanya boleh dilihat dalam blok kod di mana ia diisytiharkan. Jenis inferens: Pengkompil Java akan membuat kesimpulan jenis pembolehubah val berdasarkan ungkapan yang diberikan. Pembolehubah tempatan sahaja: val hanya boleh digunakan untuk mengisytiharkan pembolehubah tempatan, bukan medan kelas atau parameter kaedah.

Kekunci mana yang perlu ditekan semasa menjalankan kod python secara sublime Kekunci mana yang perlu ditekan semasa menjalankan kod python secara sublime Apr 03, 2024 pm 03:54 PM

Kekunci pintasan untuk menjalankan kod Python dalam Teks Sublime ialah: Windows dan Linux: Ctrl + B Mac: Cmd + B Letakkan kursor dalam kod. Tekan kekunci pintasan. Kod akan dijalankan menggunakan penterjemah Python lalai sistem.

Perbezaan antara const dan statik dalam c++ Perbezaan antara const dan statik dalam c++ May 01, 2024 am 10:54 AM

Pengubah suai const menunjukkan pemalar dan nilai tidak boleh diubah suai statik menunjukkan jangka hayat dan skop pembolehubah. Ahli data yang diubah suai oleh const tidak boleh diubah suai selepas pemulaan Pembolehubah yang diubah suai oleh statik dimulakan apabila atur cara dimulakan dan dimusnahkan apabila atur cara itu akan wujud walaupun tiada objek aktif dan boleh diakses merentas fungsi. Pembolehubah tempatan yang diubah suai oleh const mesti dimulakan apabila diisytiharkan, manakala pembolehubah tempatan yang diubah suai oleh statik boleh dimulakan kemudian. Pembolehubah ahli kelas yang diubah suai const mesti dimulakan dalam senarai pembina atau permulaan, manakala pembolehubah ahli kelas yang diubah suai statik boleh dimulakan di luar kelas.

Apakah maksud = dalam java Apakah maksud = dalam java Apr 26, 2024 pm 11:30 PM

Operator "=" dalam bahasa pengaturcaraan Java digunakan untuk menetapkan nilai kepada pembolehubah, menyimpan nilai di sebelah kanan ungkapan dalam pembolehubah di sebelah kiri. Penggunaan: pembolehubah = ungkapan, dengan pembolehubah ialah nama pembolehubah yang menerima tugasan, dan ungkapan ialah segmen kod yang mengira atau mengembalikan nilai.

Apakah yang dimaksudkan dengan eclipse apabila ia mengatakan bahawa kelas utama tidak boleh dimuatkan? Apakah yang dimaksudkan dengan eclipse apabila ia mengatakan bahawa kelas utama tidak boleh dimuatkan? May 05, 2024 pm 07:09 PM

Penyelesaian kepada ralat "Ralat: Tidak dapat mencari atau memuatkan kelas utama" dalam Eclipse: Semak sama ada kelas utama wujud dan laluannya betul. Sahkan bahawa kelas utama berada dalam pakej yang betul dan akses awam membenarkan akses Eclipse. Semak konfigurasi laluan kelas untuk memastikan bahawa Eclipse boleh mencari fail kelas untuk kelas utama. Susun dan betulkan ralat yang menyebabkan kelas utama gagal dimuatkan. Semak jejak tindanan untuk mengenal pasti punca masalah. Susun dari baris arahan menggunakan arahan javac dan semak mesej ralat. Mulakan semula Eclipse untuk menyelesaikan masalah yang berpotensi.

Bagaimana untuk memaparkan bar navigasi gerhana Bagaimana untuk memaparkan bar navigasi gerhana May 05, 2024 pm 07:12 PM

Bar navigasi Eclipse boleh dipaparkan melalui menu: Tetingkap > Paparan Paparan > Kekunci Pintasan Navigasi: Ctrl + 3 (Windows) atau Cmd + 3 (Mac) Klik kanan ruang kerja > Paparan Paparan > Navigasi Bar navigasi mengandungi fungsi berikut : Penyemak Imbas Sumber Projek: Menunjukkan folder dan fail Pelayar Sumber Pakej: Menunjukkan struktur pakej Java Pandangan Masalah: Menunjukkan ralat penyusunan dan amaran Paparan Tugas: Menunjukkan tugas Medan carian: Carian untuk kod dan fail Paparan Penanda Halaman: Menandai baris kod untuk akses pantas