Java の instanceof 演算子の使用方法

Javaのinstanceofは、オブジェクトが特定のクラスのインスタンスであるかどうか、または特定のクラスのサブクラスのインスタンスであるかどうかを判断するために使用する演算子です。

それはこう文法です:

オブジェクト instanceof 型

オブジェクトが指定された型であれば true、そうでなければ false になります。

たとえば,AnimalクラスとDogクラスがあって、DogクラスはAnimalクラスの子クラスであるとします。このとき、オブジェクトがAnimalクラスのインスタンスかDogクラスのインスタンスかを判断するためにinstanceof演算子を使用できます。

Animal animal = new Animal();
Dog dog = new Dog();
boolean isAnimal = animal instanceof Animal; // true
boolean isDog = dog instanceof Dog; // true
boolean isAnimal2 = dog instanceof Animal; // true,因为Dog是Animal的子类
boolean isString = "Hello" instanceof String; // true
boolean isInteger = 5 instanceof Integer; // false

親クラスのインスタンスかどうかをinstanceof演算子で判定した場合、真となることに注意。これは、サブクラスのインスタンスは親クラスのインスタンスでもあるためである。

Dog dog = new Dog();
boolean isAnimal = dog instanceof Animal; // true

なお、オブジェクトがnullの場合、instanceof演算子はfalseを返します。

Animal animal = null;
boolean isAnimal = animal instanceof Animal; // false
bannerAds