猿问

在Java中,‘instanceof’操作符是用来做什么的?

在Java中,‘instanceof’操作符是用来做什么的?

什么是instanceof接线员?我见过这样的东西

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.编码愉快。

当年话下

如果表达式的左侧为实例右侧的类名。这样想吧。说你街区里所有的房子都是用相同的蓝图建造的。十个房子(物体),一套蓝图(类别定义)。instanceof是一个有用的工具,当你有一个对象的集合,而你不知道它们是什么。假设您有一个窗体上的控件集合。您希望读取任何复选框的选中状态,但不能要求普通的旧对象提供其选中状态。相反,您将看到每个对象是否是一个复选框,如果是,则将其转换为复选框并检查其属性。if (obj instanceof Checkbox){     Checkbox cb = (Checkbox)obj;     boolean state = cb.getState();}

桃花长相依

如上文所述本站:这个instanceof运算符可用于测试对象是否为特定类型.if (objectReference instanceof type)一个简单的例子:String s = "Hello World!"return s instanceof String;//result --> true然而,申请instanceof在空引用变量/表达式上返回false。String s = null;return s instanceof String;//result --> false由于子类是其超类的“类型”,所以可以使用instanceof来验证这个.。class Parent {     public Parent() {}}class Child extends Parent {     public Child() {         super();     }}public class Main {     public static void main(String[] args) {         Child child = new Child();         System.out.println( child instanceof Parent );     }}//result --> true我希望这能帮到你!
随时随地看视频慕课网APP

相关分类

Java
我要回答