"Szia, Amigo! Már találkoztál az instanceof operátorral. Ma elmondom, hogyan és hol lehet használni. Az instanceof egy nagyon egyszerű és hatékony operátor."

– Ez úgy hangzik, mint egy reklám!

"Valójában nagyon egyszerű. Így használják: «objektum» példány az «osztály» .

Ellenőrzi, hogy egy objektum egy adott osztály példánya-e. Könnyebb, mint elmagyarázni. Nézd meg ezt a példát:

Kód Leírás
Object o = new Integer(3);
boolean isInt = o instanceof Integer;
isInt igaz lesz . Az o változó által hivatkozott objektum az Integer osztály egy példánya .
Object o = "Mama";
boolean isInt = o instanceof Integer;
isInt hamis lesz . Az o változó által hivatkozott objektum nem az Integer osztály példánya . Ez egy String objektum.
InputStream is = new FileInputStream("");
boolean isFIS = is instanceof FileInputStream;
isFIS igaz lesz . Az o változó által hivatkozott objektum a FileInputStream osztály egy példánya .

– Igen, ez nagyon egyszerű.

"Ez az operátor örökléssel is számol. Nézze meg."

Kód Leírás
class Animal
{
}
class Cat extends Animal
{
}
class Tiger extends Cat
{
}
Itt van három osztálynyilatkozat: Állat, Macska és Tigris. A macska az állatot örökli. Tigris pedig örökli Cat.
Object o = new Tiger();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat igaz  lesz  .
isTiger igaz  lesz  .
isAnimal igaz  lesz  .
Object o = new Animal();
boolean isCat = o instanceof Cat;
boolean isTiger = o instanceof Tiger;
boolean isAnimal = o instanceof Animal;
isCat hamis  lesz .
isTiger hamis  lesz  .
isAnimal igaz  lesz  .

És még az interfészek is:

Kód Leírás
interface Moveable
{
}
class Cat
{
}
class TomCat extends Cat implements Moveable
{
}
Hozzon létre két osztályt: Cat, TomCat és a Moveable felületet
Cat o = new TomCat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat igaz  lesz  .
isMoveable igaz  lesz  .
isTom igaz  lesz  .
Cat o = new Cat();
boolean isCat = o instanceof Cat;
boolean isMoveable = o instanceof Moveable;
boolean isTom = o instanceof TomCat;
isCat igaz  lesz  .
Az isMoveable hamis  lesz  .
isTom hamis  lesz  .

Az instanceof operátor így néz ki: a instanceof B .

Más szavakkal, az instanceof operátor igazat ad vissza , ha:

1) az a változó hivatkozást tárol egy B típusú objektumra

2)  az a változó hivatkozást tárol egy objektumra, amelynek osztálya  B-t örököl

3)  az a változó hivatkozást tárol egy olyan objektumra, amely megvalósítja a  B interfészt

Ellenkező esetben az instanceof operátor false értéket ad vissza .

– Értem. Akkor miért van erre szükség, Rishi bácsi?

"Ellie ma erről fog neked mesélni. Ez egy nagyon kedves kezelő. Ma meg fogod győződni róla."