Rumah >Java >javaTutorial >Mengapakah Kaedah `remove()` Collections Java Bukan Generik?
Mengapakah Kaedah Alih Keluar Java Collections Bukan Generik?
Rangka kerja Java Collections menyediakan kaedah remove() untuk kedua-dua koleksi dan peta. Walau bagaimanapun, kaedah ini bukan generik, bermakna ia menerima Objek sebagai hujah dan bukannya parameter jenis E. Keputusan ini telah menimbulkan persoalan tentang potensi faedah membuat remove() generik.
Satu hujah untuk membuat remove() generik ialah ia boleh menghalang ralat masa kompilasi apabila cuba mengalih keluar jenis yang tidak serasi daripada koleksi secara tidak sengaja . Contohnya, jika Koleksi
Walau bagaimanapun, sebab mengapa remove() tidak generik adalah terutamanya kerana ia membenarkan penyingkiran objek berdasarkan kesaksamaan dan bukannya pemeriksaan jenis yang ketat. Mengikut spesifikasi kaedah remove(), elemen yang hendak dialih keluar dikenal pasti sebagai objek e supaya (o==null ? e==null : o.equals(e)) adalah benar. Ini membolehkan fleksibiliti dalam penyingkiran elemen, kerana objek yang dialih keluar tidak perlu jenis yang sama seperti objek yang dihantar kepada kaedah remove().
Sebagai contoh, adalah mungkin untuk mempunyai Map
Atas ialah kandungan terperinci Mengapakah Kaedah `remove()` Collections Java Bukan Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!