Rumah > masalah biasa > teks badan

Mengapa instanceof boleh antara muka

小老鼠
Lepaskan: 2023-11-13 15:09:57
asal
936 orang telah melayarinya

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.

Mengapa instanceof boleh antara muka

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. Kami kemudiannya boleh menambah objek yang melaksanakan antara muka pada koleksi. Dalam koleksi, jenis sebenar objek dipadamkan, hanya meninggalkan maklumat yang ia melaksanakan antara muka.

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 sebagai parameter dan berulang melalui senarai, menyemak sama ada setiap objek melaksanakan antara muka yang ditentukan. Jika objek yang melaksanakan antara muka ini ditemui, objek itu boleh dikembalikan jika tidak, nilai nol atau lalai lain boleh dikembalikan.

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;  
    }  
}
Salin selepas log masuk

Dalam contoh ini, kaedah findFirstInstance menerima Senarai dan Kelas< ;T> parameter, dengan T ialah jenis antara muka yang akan ditemui. Kaedah ini berulang melalui setiap objek dalam senarai dan menggunakan kaedah Class.isInstance() untuk menyemak sama ada objek itu adalah contoh antara muka yang ditentukan. Jika ya, gunakan kaedah Class.cast() untuk menghantar objek ke objek jenis antara muka yang ditentukan dan mengembalikannya. Jika tiada objek sepadan ditemui, null dikembalikan.

Atas ialah kandungan terperinci Mengapa instanceof boleh antara muka. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!