penggunaan:
(ketik variabel instanceof kelas | antarmuka)
memengaruhi:
Operator instanceof digunakan untuk menentukan apakah objek sebelumnya merupakan turunan dari kelas berikutnya, atau subkelasnya, atau kelas implementasinya. Jika demikian, kembalikan nilai benar; jika tidak, kembalikan salah.
Melihat:
・Jenis operan waktu kompilasi di depan instanceof sama dengan kelas berikut, atau memiliki hubungan warisan induk-anak dengan kelas berikut, jika tidak, kesalahan kompilasi akan terjadi.
Contoh sederhana:
Copy kode kodenya sebagai berikut:
/**
* contoh operator
* @penulis Administrator
*
*/
kelas publik TestInstanceof {
public static void main(String[] args) {
//Gunakan kelas Object ketika mendeklarasikan hello, maka tipe hello yang dikompilasi adalah Object
//Kelas objek adalah kelas induk dari semua kelas, tetapi tipe hello sebenarnya adalah String
Objek halo = "Halo";
//String adalah subkelas dari Object dan dapat melakukan operasi instanceof dan mengembalikan nilai true
System.out.println("Apakah string merupakan turunan dari kelas objek:"
+ (halo instanceObjek));
//BENAR
System.out.println("Apakah string merupakan turunan dari String:"
+ (halo contoh String));
//PALSU
System.out.println("Apakah string merupakan turunan dari kelas Matematika:"
+ (halo contoh Matematika));
//String mengimplementasikan antarmuka Comparable, sehingga mengembalikan nilai true
System.out.println("Apakah string merupakan turunan dari kelas Sebanding:"
+(halo instanceof Sebanding));
/**
* String bukan kelas Matematika atau kelas induk dari kelas Matematika, jadi kode berikut tidak dikompilasi dengan benar
*/
//String a = "halo";
//System.out.println("Apakah string merupakan turunan dari kelas Matematika:"
// + (contoh Matematika));
}
}
Hasil berjalan:
Copy kode kodenya sebagai berikut:
Apakah string tersebut merupakan turunan dari kelas objek: benar
Apakah string tersebut merupakan turunan dari String: true
Apakah string tersebut merupakan turunan dari kelas Matematika: salah
Apakah string tersebut merupakan turunan dari kelas Comparable: true
Biasanya sebelum melakukan konversi tipe paksa, terlebih dahulu ditentukan apakah objek sebelumnya merupakan turunan dari objek terakhir dan apakah konversi dapat berhasil, sehingga memastikan ketahanan kode.