Saya rasa orang di atas mempunyai masalah dengan pemahaman mereka Pertama sekali, Senarai<?> Ia tidak mewakili sebarang jenis, tetapi kami tidak tahu apakah jenis khusus ini apabila Pengaturcaraan Senarai mewakili senarai asli, senarai tanpa parameter generik dan penggunaannya tidak digalakkan ia adalah Objek, ia boleh dimasukkan Akhirnya, Senarai< extends Object> mewakili koleksi ini menyimpan salah satu subkelas Object, bukan sebarang subkelas objek
Perkara terakhir yang saya ingin katakan ialah <?> sebenarnya agak mirip dengan <? 🎜>
public class Base
{
public static void unbounded(List<?> list){}
public static void upBounded(List<? extends Object> list){}
public static void main(String args[])
{
List<?> list1 = new ArrayList<Object>() ;
List<? extends Object> list2 = new ArrayList<Object>() ;
unbounded(list2) ;
upBounded(list1) ;
}
}
Walau bagaimanapun, perbezaan ini hanya dijana oleh pengkompil pada masa penyusunan, disebabkan pemadaman, semuanya adalah Senarai<Objek>
List<?> dan List: Ini bermakna sebarang jenis objek boleh diletakkan dalam koleksi Jika List digunakan secara bersendirian, akan ada amaran dalam Eclipse;
: Ini mengenai menyimpan objek jenis Objek dalam koleksi Memahami warisan dan mekanisme transformasi ke atas dalam Java Tidak sukar untuk mencari bahawa koleksi ini sebenarnya boleh menyimpan sebarang jenis objek
List<Object>
>: Ini bermakna objek yang disimpan dalam koleksi mestilah objek subkelas kelas Objek
List<? extends ObjectUntuk butiran, sila rujuk bahagian tentang generik dalam "Teknologi Teras Java (Jilid 1)"...
Senarai ialah sejenis koleksi. < > mewakili jenis generik Senarai<?> mewakili sebarang jenis Senarai<Objek> mewakili Sebarang jenis objek yang diwarisi daripada kelas objek boleh diletakkan dalam koleksi ini
Jika anda ingin mengetahui lebih lanjut tentang gerak isyarat kecil rangka kerja koleksi, anda boleh membaca lajur yang saya tulis, yang mempunyai bab tentang rangka kerja koleksi
**Senarai<?>, Senaraikan<Objek>, Senaraikan<? Perbezaannya adalah seperti berikut: 1 Memahami generik dalam JDK letakkannya dalam Untuk perkara dalam Koleksi, dengan mengehadkan jenis dalam <> semasa penyusunan, ralat boleh disemak sebanyak mungkin semasa penyusunan, bukannya membuang pengecualian semasa berjalan dalam talian. 2. Jika List ditulis seperti ini, akan ada garis kuning di bawahnya dalam gerhana, dan akan ada amaran. Dan ia juga ditulis dengan cara yang tidak teratur, manakala selebihnya ditulis dengan cara yang standard. 3.Senarai<?> boleh meletakkan apa-apa jenis Senarai<Objek> depan , Senarai<? memanjangkan Objek> anda boleh meletakkan mana-mana kelas atau kelas Objek itu sendiri. Semoga ia membantu anda~~**
Saya rasa orang di atas mempunyai masalah dengan pemahaman mereka Pertama sekali, Senarai<?> Ia tidak mewakili sebarang jenis, tetapi kami tidak tahu apakah jenis khusus ini apabila Pengaturcaraan Senarai mewakili senarai asli, senarai tanpa parameter generik dan penggunaannya tidak digalakkan ia adalah Objek, ia boleh dimasukkan Akhirnya, Senarai< extends Object> mewakili koleksi ini menyimpan salah satu subkelas Object, bukan sebarang subkelas objek
Perkara terakhir yang saya ingin katakan ialah <?> sebenarnya agak mirip dengan <? 🎜>
Walau bagaimanapun, perbezaan ini hanya dijana oleh pengkompil pada masa penyusunan, disebabkan pemadaman, semuanya adalah Senarai<Objek>Pemahaman peribadi saya
.
List<?>
danList
: Ini bermakna sebarang jenis objek boleh diletakkan dalam koleksi JikaList
digunakan secara bersendirian, akan ada amaran dalam Eclipse;: Ini mengenai menyimpan objek jenis Objek dalam koleksi Memahami warisan dan mekanisme transformasi ke atas dalam Java Tidak sukar untuk mencari bahawa koleksi ini sebenarnya boleh menyimpan sebarang jenis objek
>: Ini bermakna objek yang disimpan dalam koleksi mestilah objek subkelas kelas ObjekList<Object>
List<? extends Object
Untuk butiran, sila rujuk bahagian tentang generik dalam "Teknologi Teras Java (Jilid 1)"...Senarai ialah sejenis koleksi.
Jika anda ingin mengetahui lebih lanjut tentang gerak isyarat kecil rangka kerja koleksi, anda boleh membaca lajur yang saya tulis, yang mempunyai bab tentang rangka kerja koleksi< > mewakili jenis generik
Senarai<?> mewakili sebarang jenis
Senarai<Objek> mewakili Sebarang jenis objek yang diwarisi daripada kelas objek boleh diletakkan dalam koleksi ini
**Senarai<?>, Senaraikan<Objek>, Senaraikan<? Perbezaannya adalah seperti berikut:
1 Memahami generik dalam JDK letakkannya dalam Untuk perkara dalam Koleksi, dengan mengehadkan jenis dalam <> semasa penyusunan, ralat boleh disemak sebanyak mungkin semasa penyusunan, bukannya membuang pengecualian semasa berjalan dalam talian.
2. Jika List ditulis seperti ini, akan ada garis kuning di bawahnya dalam gerhana, dan akan ada amaran. Dan ia juga ditulis dengan cara yang tidak teratur, manakala selebihnya ditulis dengan cara yang standard.
3.Senarai<?> boleh meletakkan apa-apa jenis Senarai<Objek> depan , Senarai<? memanjangkan Objek> anda boleh meletakkan mana-mana kelas atau kelas Objek itu sendiri.
Semoga ia membantu anda~~**