Rumah >masalah biasa >Mengapa instanceof boleh antara muka
instanceof tidak boleh disambungkan. Sebabnya ialah: kata kunci instanceof digunakan untuk menyemak sama ada objek ialah contoh kelas tertentu, dan tidak boleh digunakan secara langsung untuk menyemak sama ada objek ialah contoh antara muka, kerana antara muka tidak boleh digunakan.
Sistem pengendalian tutorial ini: sistem Windows 10, komputer Dell G3.
Di Java, kata kunci instanceof digunakan untuk menyemak sama ada objek ialah contoh kelas tertentu. Ia tidak boleh digunakan secara langsung untuk menyemak sama ada objek ialah contoh antara muka kerana antara muka tidak boleh digunakan. Walau bagaimanapun, terdapat beberapa cara tidak langsung untuk menyemak sama ada objek melaksanakan antara muka.
Pertama, kita perlu memahami generik dan pemadaman jenis dalam Java. Di Java, generik ialah mekanisme yang digunakan untuk pemeriksaan jenis pada masa penyusunan Ia membolehkan anda menyemak sama ada pembolehubah, parameter, jenis pemulangan, dll. mematuhi jenis yang ditentukan pada masa penyusunan. Pemadaman jenis ialah mekanisme yang memadamkan maklumat jenis generik pada masa penyusunan, supaya kod masa jalan tidak mengetahui maklumat jenis generik.
Di Java, anda boleh menggunakan pemadaman generik dan taip untuk mencipta koleksi yang boleh menerima sebarang jenis, seperti List
Dengan cara ini, kita boleh menyemak sama ada objek melaksanakan antara muka tertentu pada masa jalan. Sebagai contoh, kita boleh mencipta kaedah yang menerima Senarai
Berikut ialah kod contoh ringkas yang menunjukkan cara menggunakan generik dan pemadaman jenis untuk menyemak sama ada objek melaksanakan antara muka tertentu:
import java.util.List; public class InstanceOfInterfaceExample { public static <T> T findFirstInstance(List<Object> list, Class<T> interfaceClass) { for (Object obj : list) { if (interfaceClass.isInstance(obj)) { return interfaceClass.cast(obj); } } return null; } }
Dalam contoh ini, kaedah findFirstInstance menerima Senarai
Atas ialah kandungan terperinci Mengapa instanceof boleh antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!