Rumah > Java > javaTutorial > Bagaimana Java Generics\' `? Super` Wildcards Berfungsi dan Apakah Hadnya?

Bagaimana Java Generics\' `? Super` Wildcards Berfungsi dan Apakah Hadnya?

DDD
Lepaskan: 2024-11-25 06:17:16
asal
629 orang telah melayarinya

How Do Java Generics' `? super` Wildcards Work and What Are Their Limitations?

Kata Kunci Super Java Generics

Memahami Kad Liar Terbatas

Apabila kita menggunakan kad bebas terikat dengan super, ini bermakna parameter jenis boleh jenis yang ditentukan atau mana-mana kelas supernya. Contohnya, Senarai menunjukkan bahawa senarai itu boleh menyimpan objek jenis Nombor atau mana-mana kelas induknya.

Menambah Elemen pada Kad Liar Terhad

Dalam contoh pertama anda, senarai senarai diisytiharkan sebagai Senaraikan tidak boleh mengambil Objek kerana Objek bukan subkelas Nombor. Sebaliknya, Integer ialah subkelas Nombor, jadi ia boleh ditambah pada senarai.

Ralat Penyusunan dengan Kata Kunci Super

Dalam contoh kedua anda, anda cuba melepasi Senarai< String> kepada kaedah yang mengharapkan Senarai. Ralat kompilasi ini berlaku kerana String bukan subkelas Nombor. Logik yang anda kemukakan tidak betul: Objek bukan superclass Nombor dan String bukan subkelas Nombor.

SEKATAN PADA WILDCARDS

Tidak seperti kad bebas sempadan bawah, kad bebas sempadan atas tidak boleh digunakan sebagai pengeluar. Ini bermakna anda tidak boleh mendapatkan elemen individu daripada Senarai. Sekatan ini wujud untuk mengelakkan pelanggaran keselamatan jenis.

Kesimpulan

Kad bebas sempadan dengan super membolehkan kami mencipta koleksi yang boleh menggunakan objek berbilang jenis yang diwarisi daripada superclass biasa . Walau bagaimanapun, kita harus berhati-hati apabila menambah elemen pada koleksi ini, kerana kita tidak boleh menambah objek yang bukan subkelas superclass yang ditetapkan.

Atas ialah kandungan terperinci Bagaimana Java Generics\' `? Super` Wildcards Berfungsi dan Apakah Hadnya?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan