"Hello, Amigo! Anda telah pun bertemu dengan pengendali instanceof . Hari ini saya akan memberitahu anda bagaimana dan di mana ia boleh digunakan. instanceof ialah pengendali yang sangat mudah dan cekap."

"Itu bunyi seperti iklan!"

"Ia benar-benar sangat mudah. ​​Ia digunakan seperti ini: «objek» instanceof «class» ."

Ia menyemak sama ada objek adalah contoh kelas tertentu. Ia lebih mudah daripada menerangkannya. Lihat contoh ini:

Kod Penerangan
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt akan menjadi benar . Objek yang dirujuk oleh pembolehubah o ialah contoh kelas Integer .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt akan menjadi palsu . Objek yang dirujuk oleh pembolehubah o bukan contoh kelas Integer . Ia adalah objek String .
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS akan menjadi benar . Objek yang dirujuk oleh pembolehubah o ialah contoh kelas FileInputStream .

"Ya, itu sangat mudah."

"Pengendali ini juga mengambil kira warisan. Semak ia."

Kod Penerangan
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Di sini kita mempunyai tiga pengisytiharan kelas: Haiwan, Kucing dan Harimau. Kucing mewarisi Haiwan. Dan Harimau mewarisi Kucing.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan menjadi  benar .
isTiger  akan menjadi  benar .
isAnimal  akan menjadi  benar .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat  akan menjadi palsu .
isTiger  akan menjadi  palsu .
isAnimal  akan menjadi  benar .

Dan juga antara muka:

Kod Penerangan
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Buat dua kelas: Cat, TomCat dan antara muka Boleh Alih
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan menjadi  benar .
isMoveable  akan menjadi  benar .
isTom  akan menjadi  benar .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat  akan menjadi  benar .
isMoveable  akan menjadi  palsu .
isTom  akan menjadi  palsu .

Operator instanceof kelihatan seperti ini: a instanceof B .

Dengan kata lain, pengendali instanceof akan kembali benar jika:

1) pembolehubah a menyimpan rujukan kepada objek jenis B

2)  pembolehubah a menyimpan rujukan kepada objek yang kelasnya mewarisi  B

3)  pembolehubah a menyimpan rujukan kepada objek yang melaksanakan antara muka  B

Jika tidak, pengendali instanceof akan mengembalikan false .

"Faham. Jadi kenapa ini perlu, Uncle Rishi?"

"Ellie akan memberitahu anda tentang perkara itu hari ini. Ini adalah pengendali yang sangat baik. Anda akan yakin hari ini."