Antara muka koleksi dalam Java, seperti Koleksi dan Peta, menampilkan kaedah alih keluar biasa dengan satu Objek parameter. Pilihan reka bentuk ini pada mulanya mungkin kelihatan berlawanan dengan intuisi, memandangkan elemen koleksi ditaip dengan kuat. Mengapakah tiada kaedah alih keluar generik, seperti buang(E o) di mana E mewakili jenis elemen?
Rasional di sebalik kaedah alih keluar bukan generik terletak pada memastikan fleksibiliti dan mengekalkan hubungan kesaksamaan dalam koleksi. Dengan membenarkan parameter Objek, Java membenarkan pengalihan keluar elemen walaupun ia bukan jenis eksplisit yang sama seperti elemen koleksi. Ini sejajar dengan prinsip kesamaan dalam Java, di mana dua objek boleh menjadi sama walaupun ia tergolong dalam kelas yang berbeza, selagi mereka melaksanakan kaedah sama dengan sewajarnya.
Sebagai contoh, pertimbangkan Map Walaupun kaedah alih keluar bukan generik memberikan fleksibiliti, ia juga memperkenalkan potensi untuk membuang unsur yang tidak disengajakan secara tidak sengaja. Untuk mengurangkan risiko ini, disyorkan untuk menghantar objek secara eksplisit ke jenis elemen koleksi sebelum cuba mengalih keluar. Sebagai contoh, dalam kes Set Langkah tambahan ini memastikan bahawa hanya elemen yang dimaksudkan dialih keluar, memupuk keselamatan jenis dalam koleksi Java. Dalam situasi di mana jenis elemen tidak diketahui atau berubah-ubah, semakan tambahan atau pernyataan bersyarat mungkin diperlukan untuk mengendalikan pengalihan keluar objek tidak sepadan dengan betul. Kaedah alih keluar bukan generik dalam Java Collections bukanlah kecacatan reka bentuk tetapi sebaliknya merupakan pilihan yang mengekalkan fleksibiliti dan mengekalkan hubungan kesaksamaan. Walaupun pemutus eksplisit diperlukan untuk menguatkuasakan keselamatan jenis, pendekatan ini membolehkan pengendalian koleksi yang lebih serba boleh dan menghalang penyingkiran unsur-unsur yang tidak sepadan dengan jenis yang dijangkakan secara tidak sengaja. Atas ialah kandungan terperinci Mengapakah Kaedah Java `remove()` dalam Koleksi Menggunakan Generik?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!Menguatkuasakan Keselamatan Jenis Melalui Casting Eksplisit
Kesimpulan