Koleksi Java termasuk kaedah alih keluar dengan tandatangan buang(Objek o). Ramai yang tertanya-tanya mengapa kaedah ini tidak generik, memandangkan koleksi mengendalikan jenis objek tertentu.
Sebab Bukan Generik
Sifat bukan generik bagi remove() berpunca daripada konsep asas kesamaan objek dalam Jawa. Kaedah alih keluar beroperasi berdasarkan perbandingan kesamaan, bukan perbandingan jenis. Ia boleh mengeluarkan objek (e) daripada koleksi jika e sama dengan objek yang disediakan (o). Perbandingan kesamaan dalam Java dilakukan menggunakan kaedah equals(), yang mengambil Object sebagai hujah.
Ini membolehkan kefleksibelan dalam mengalih keluar objek, walaupun objek yang berlainan jenis. Contohnya, dalam Koleksi
Mengelakkan Ralat Masa Kompilasi
Walaupun kaedah generik boleh memberikan keselamatan jenis yang lebih baik, ia boleh memperkenalkan masa penyusunan kesilapan dalam senario tertentu. Jika remove() adalah generik, sebarang percubaan untuk mengalih keluar objek daripada jenis yang berbeza akan mengakibatkan ralat masa kompilasi.
Walau bagaimanapun, memandangkan remove() bukan generik, ia membolehkan fleksibiliti dalam mengendalikan objek semasa penyingkiran. Ia mungkin tidak menghalang sepenuhnya isu penyahpepijatan di kemudian hari, tetapi ia membenarkan rangkaian operasi yang lebih luas dan menghapuskan kemungkinan ralat masa kompilasi yang tidak diperlukan.
Atas ialah kandungan terperinci Mengapakah Kaedah `remove(Object o)` Java Collection Bukan Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!