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