Rumah  >  Artikel  >  Java  >  Mengapa Saya Tidak Boleh Mencipta Susunan Senarai Terpaut di Java dan Bagaimana Saya Membetulkannya?

Mengapa Saya Tidak Boleh Mencipta Susunan Senarai Terpaut di Java dan Bagaimana Saya Membetulkannya?

Susan Sarandon
Susan Sarandonasal
2024-10-27 07:31:29908semak imbas

Why Can't I Create an Array of LinkedLists in Java and How Do I Fix It?

Membuat Array LinkedLists di Java

Di Java, persoalan timbul apabila cuba mencipta tatasusunan LinkedLists. Apabila mengisytiharkan tatasusunan seperti LinkedList[] myMatrix peribadi, tatasusunan dijangka boleh diperuntukkan dengan baris berikut: myMatrix = LinkedList baharu[numRows]. Walau bagaimanapun, strategi ini menghasilkan ralat yang menyatakan bahawa tatasusunan generik LinkedList tidak boleh dibuat.

Ini menimbulkan dua isu:

  1. Apakah ralat yang menyebabkan keadaan ini?
  2. Mengapa jenis LinkedList dibenarkan dalam pengisytiharan tatasusunan jika ia tidak boleh dibuat?

Adalah penting untuk ambil perhatian bahawa IntegerNode ialah kelas yang ditentukan pengguna dalam senario ini.

Resolusi

Penyelesaian kepada isu ini ialah menghantar jenis dalam pengisytiharan untuk membenarkan penciptaan tatasusunan. Pengisytiharan yang disemak hendaklah:

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];

Penjelasan

Dalam Java, tatasusunan generik tidak disokong secara langsung. Sebaliknya, jenis mentah (iaitu, jenis tanpa parameter jenis) digunakan. Menghantar jenis membolehkan pengkompil membuat kesimpulan jenis generik yang betul untuk tatasusunan.

Jadi, jenis LinkedList[] dalam pengisytiharan dibenarkan, walaupun ia tidak boleh dibuat secara langsung. Ini kerana pengkompil menganggapnya sebagai jenis mentah, menyerahkannya kepada pengaturcara untuk menghantarnya kepada jenis generik tertentu yang diperlukan.

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

Kenyataan:
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