Rumah >Java >javaTutorial >Mengapa Saya Tidak Boleh Mencipta Tatasusunan Generik dalam Java?
Tatasusunan Generik dalam Java
Tatasusunan dan generik mencipta sekatan jalan pengaturcaraan di Java. Anda tidak boleh membuat tatasusunan jenis parametrik secara langsung. Ini kerana tatasusunan adalah kovarian, bermakna ia mengekalkan jenis elemennya semasa masa jalan, manakala generik menggunakan pemadaman jenis.
Penyelesaian adalah dengan menggunakan Array.newInstance() seperti ini:
private Comparable[] hashtable; ... hashtable = (Comparable[])Array.newInstance(Comparable.class, tableSize);
Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa penyelesaian ini tidak sesuai.
Mengapa tidak menggunakan tatasusunan generik?
Untuk mengelakkan isu ini, anda disyorkan untuk menggunakan ArrayList dan bukannya tatasusunan apabila bekerja dengan generik. ArrayLists adalah kovarian dan selamat jenis, yang menjadikannya pilihan yang lebih baik untuk menyimpan jenis generik.
Untuk penjelasan yang lebih terperinci, rujuk Soalan Lazim Java Generics:
Bolehkah saya mencipta tatasusunan yang jenis komponennya ialah jenis parameter konkrit?
Tidak, kerana ia tidak selamat jenis.
Tatasusunan ialah kovarian, yang bermaksud tatasusunan rujukan superjenis ialah superjenis tatasusunan rujukan subjenis. Iaitu, Object[] ialah supertype String[] dan tatasusunan rentetan boleh diakses melalui pembolehubah rujukan jenis Object[].
Atas ialah kandungan terperinci Mengapa Saya Tidak Boleh Mencipta Tatasusunan Generik dalam Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!