Rumah >Java >javaTutorial >Mengapakah Saya Tidak Boleh Mencipta Tatasusunan Senarai Terpaut di 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
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
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];
Pelakon (LinkedList
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!