Java中的instanceof是一个运算符,用于判断一个对象是否是特定类的实例,或者是特定类的子类的实例。
它的语法是:
对象 instanceof 类型
如果对象是指定的类型,结果为true;否则,结果为false。
例如,假设有一个Animal类和一个Dog类,Dog类是Animal类的子类。我们可以使用instanceof运算符来判断一个对象是否为Animal类的实例或者Dog类的实例。
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运算符判断一个对象是否是它的父类的实例,结果也为true。这是因为子类的实例也是父类的实例。
Dog dog = new Dog();
boolean isAnimal = dog instanceof Animal; // true
此外,如果对象为null,使用instanceof运算符会返回false。
Animal animal = null;
boolean isAnimal = animal instanceof Animal; // false