Rumah > Java > javaTutorial > teks badan

Mengapakah Saya Tidak Boleh Mencipta Tatasusunan Senarai Terpaut di Java?

Susan Sarandon
Lepaskan: 2024-10-27 01:42:03
asal
912 orang telah melayarinya

Why Can't I Create an Array of LinkedLists in Java?

Tidak Dapat Membuat Instantiate LinkedList Array di Java

Dalam urutan ini, pembangun menghadapi cabaran semasa cuba mencipta tatasusunan LinkedList di Java untuk menyimpan nilai dalam matriks jarang. Mesej ralat "Tidak boleh mencipta tatasusunan generik LinkedList" menggesa dua soalan penting:

  1. Apakah punca ralat ini?

    Punca utama terletak pada sekatan Java terhadap mencipta tatasusunan generik bagi jenis bukan primitif. Generik ialah mekanisme selamat jenis yang diperkenalkan dalam Java 5 untuk menghalang ClassCastException masa jalan. Apabila mengisytiharkan tatasusunan jenis generik, seperti LinkedList, pengkompil memerlukan penukaran jenis eksplisit untuk menyedarkan Java tentang jenis tatasusunan tertentu yang dibuat.

  2. Mengapa adakah jenis boleh diterima dalam pengisytiharan tatasusunan tetapi tidak dalam penciptaan?

    Pengisytiharan tatasusunan menggunakan jenis mentah, LinkedList[], yang tidak menyatakan parameter jenis generik. Jenis mentah tidak ditaip dan tidak menguatkuasakan keselamatan jenis. Walau bagaimanapun, apabila membuat instantiate tatasusunan, pengkompil memerlukan parameter jenis tertentu untuk disediakan, di mana ralat berlaku.

Penyelesaian:

Untuk menyelesaikan isu ini, satu cast jenis mesti dilakukan. Kod yang diperbetulkan sepatutnya kelihatan seperti ini:

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];
Salin selepas log masuk

Pelakon (LinkedList[]) secara eksplisit memberitahu pengkompil bahawa tatasusunan yang dibuat ialah tatasusunan LinkedList yang mengandungi elemen IntegerNode. Ini membolehkan tatasusunan generik dibuat instantiated dengan betul.

Atas ialah kandungan terperinci Mengapakah Saya Tidak Boleh Mencipta Tatasusunan Senarai Terpaut di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!