Rumah >Java >javaTutorial >Java Generics: Bagaimanakah Kata Kunci `super` Benar-benar Berfungsi dengan Kad Liar Terhad?

Java Generics: Bagaimanakah Kata Kunci `super` Benar-benar Berfungsi dengan Kad Liar Terhad?

Barbara Streisand
Barbara Streisandasal
2024-11-25 13:55:12767semak imbas

Java Generics: How Does the `super` Keyword Really Work with Bounded Wildcards?

Java Generik: Menjelaskan Kata Kunci 'Super'

Pengenalan:

Memahami kata kunci 'super' dalam generik Java boleh menjadi tugas yang membingungkan. Artikel ini bertujuan untuk menjelaskan konsep ini dengan meneroka nuansanya melalui contoh khusus dan menangani salah tanggapan biasa.

Generik Terbatas dengan Kata Kunci 'Super':

Kad bebas terikat Senaraikan membolehkan untuk menangkap Nombor dan superjenisnya. Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa ini tidak bermakna anda boleh menambah sebarang superjenis Nombor pada senarai ini.

Gelagat Tidak Dijangka Objek lwn. Integer:

Dalam contoh, anda sebutkan, Integer(0) boleh ditambah ke Senarai, manakala Object() tidak boleh. Tingkah laku ini timbul daripada peraturan penukaran tangkapan untuk kad bebas sempadan. Senaraikan hanya boleh menangkap Nombor, Objek dan Boleh Bersiri, yang mana Nombor adalah superjenis terendah.

Mengapa Menambah Rentetan pada Senarai Tidak Menyusun:

Walaupun String memanjangkan Objek, kelas super Nombor, menambah String pada Senarai gagal untuk menyusun. Ini kerana kad bebas sempadan mengikut garis panduan lanjutan pengeluar, super pengguna (PECS). Senaraikan ialah pengguna Nombor, jadi jenis hujahnya tidak boleh menjadi pengeluar String.

Mengapa Dibenarkan dalam Java Generics?

Ketiadaan binaan dalam generik Java berpunca daripada fakta bahawa mereka tidak masuk akal. Jika jenis generik boleh menerima mana-mana superjenis terikatnya, tidak ada keperluan untuk parameter jenis tertentu.

Kesimpulan:

Memahami kata kunci 'super' dalam generik Java memerlukan pertimbangan yang teliti terhadap implikasinya dan pematuhannya kepada garis panduan PECS. Dengan memahami konsep ini, anda boleh menggunakan kad bebas sempadan dengan berkesan untuk meningkatkan fleksibiliti API anda.

Atas ialah kandungan terperinci Java Generics: Bagaimanakah Kata Kunci `super` Benar-benar Berfungsi dengan Kad Liar Terhad?. 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