if (source instanceof Button) {
//...} else {
//...}
但这一切对我来说都没有意义。我已经做了我的研究,但只提出了例子,没有任何解释。
达令说
浏览 628回答 3
3回答
神不在的星期二
instanceof关键字是二元算子用于测试对象(实例)是给定类型的子类型。想象一下:interface Domestic {}class Animal {}class Dog extends Animal implements Domestic {}class Cat extends Animal implements Domestic {}想象一下dog 对象,与Object dog = new Dog(),然后:dog instanceof Domestic // true - Dog implements Domesticdog instanceof Animal // true - Dog extends Animaldog instanceof Dog
// true - Dog is Dogdog instanceof Object // true - Object is the parent type of all objects然而,与Object animal = new Animal();,animal instanceof Dog // false因为Animal是Dog可能也没那么“精致”。和,dog instanceof Cat // does not even compile!这是因为Dog既不是子类型也不是超级类型。Cat,而且它也没有实现它。请注意,用于dog以上类型Object..这是为了显示instanceof是运行时操作,并将我们带到一个/用例:根据运行时的对象类型作出不同的反应.要注意的事情:expressionThatIsNull instanceof T对所有类型都是false。T.编码愉快。