`

instanceof的执行结果

    博客分类:
  • Java
 
阅读更多

有如下一段代码

boolean b3=new Object() instanceof String;
 

 返回值是false,Object是父类,其对象当然不是String类的实例。要注意的是,这句话其实完全可以编译通过,只要instanceof关键字的左右两个操作数有继承或实现关系,就可以编译通过。

 

boolean b5=null instanceof String;

 返回值是false,这个就是instanceof特有的规则:若左操作数是null,结果就直接返回false,不会运算有操作数是什么类。这对我们的程序非常有利,在使用instanceof操作符时,不用关心被判断的类是否为null,这与我们经常用到的equals,toString方法不同。

 

boolean b8=new GenericClass<String>().isDateInstance("");

class GenericClass<T>{
      public boolean isDateInstance(T t){
            return t instanceof Date;
}
}

 编译通过了,返回了false。T是一个String类型,与Date之间没有继承和实现关系,为什么“t instanceof Date"会编译通过?因为Java的泛型是为编码服务的,在编译成字节码时候,T已经是Object类型了,传递的实参是String类型,也就是说T的表面类型是Object,实际类型是String,那“t instanceof Date"这句话就等价于”Ojbect instance of Date“了,所以返回false就很正常了。

分享到:
评论

相关推荐

    instanceof关键字.md

    `instanceof`运算的结果是一个布尔值,如果是`true`表示`obj`确实是`Class`的实例或者是其子类的实例,否则返回`false`。 #### 二、使用规则 1. **引用类型限制**:`obj`必须是引用类型,不能是基本数据类型。如果...

    PHP强制对象类型之instanceof操作符

    然而,如果忽略了对象类型的验证,可能会导致一些意料之外的结果。例如,错误的对象类型传递给方法可能导致方法无法正常工作,甚至引发异常。在处理敏感数据或执行关键操作时,这种错误尤为危险。 ### 使用实例展示...

    向下转型和instanceof运算符的应用.pdf

    在这个例子中,`is`关键字起到了`instanceof`的作用,它允许我们在运行时判断`ParentObj`是否真的是`Father`类的实例。 总的来说,向下转型和`instanceof`运算符是Delphi等面向对象语言中处理多态性和类型检查的...

    hllvm.Java instanceof 关键字是如何实现的?1

    这一步骤确保了Java源代码中的`instanceof` 运算符在运行时能够正确执行。 在JVM层面,`instanceof` 实际上是通过一条叫做`INSTANCEOF`的指令来实现的。这条指令在字节码中占据一至三个字节,它会检查对象引用是否...

    Java中instanceOf关键字的用法及特性详解.rar

    总结来说,`instanceOf`在Java中是一个有用的工具,它允许我们在运行时检查对象的类型,但应谨慎使用,以保持代码的清晰和高效。在编写多态代码时,尽量依赖于接口和继承的性质,而不是依赖于`instanceOf`的检查。

    第05章 面向对象(下) 09 Instanceof关键字

    总的来说,`instanceof`是Java中一个强大的工具,它提供了在运行时检查对象类型的能力,但使用时应谨慎,以保持代码的清晰性和可维护性。理解`instanceof`的关键点在于如何恰当地运用它来优化代码结构,提高程序的...

    详解JavaScript中typeof与instanceof用法

    // 如果变量a已被定义,则执行这里的代码 } ``` 使用typeof的好处是它几乎不会抛出错误,无论变量是否存在都能返回一个结果。然而,它在区分复杂类型(如对象、数组、null值)时的局限性限制了其使用范围。 ### ...

    老生常谈Java中instanceof关键字的理解

    可以看到,在编译状态中,p instanceof xiaoming 编译不会报错,但是运行结果为 false。这是因为在运行状态中,class 不能是 object 对象的子类。 instanceof 关键字是 Java 中一个重要的运算符,它可以用来检查...

    Java面向对象程序设计-instanceof运算符.pptx

    `instanceof`运算符在这里起到了关键作用,它允许我们在运行时检查`person`对象的实际类型,然后执行相应的方法。 例如,如果`person`是一个`Student`实例,`person instanceof Student`将返回`true`,我们可以安全...

    java 中的instanceof用法详解及instanceof是什么意思(推荐)

    - `instanceof`在多态编程中非常有用,它可以用来在运行时动态地判断对象的实际类型,从而决定如何执行特定的操作,这通常与方法的重写和覆盖一起使用。 7. **设计模式中的应用**: - 在某些设计模式中,如工厂...

    详解PHP中instanceof关键字及instanceof关键字有什么作用

    此时,可以结合switch语句使用instanceof运算符,根据不同的情况执行不同的代码块,这样的代码更加清晰,易于维护。 在实际的应用中,instanceof运算符通常会结合类的继承体系使用。如果一个对象是某个类的实例,...

    Java instanceof用法详解及实例代码

    Java中的`instanceof`运算符是用来在程序运行时判断一个对象是否属于某个特定类或其子类(或者实现了某个接口)的关键字。它允许我们动态地检查对象的类型,这对于多态性和类型安全的编程非常有用。以下是`...

    JAVAWEb从入门到精通instanceof判断对象类型PPT教案学习.pptx

    此外,`instanceof`还可以用于多态场景,比如在集合操作中检查元素类型,或者在设计模式中,如策略模式和工厂模式,用来确定应该执行哪个具体策略或创建哪个具体产品。 总的来说,`instanceof`是Java中一个强大的...

    Java 实例 - instanceof 关键字用法源代码-详细教程.zip

    这个关键字可以帮助开发者确定对象的实际类型,从而在运行时进行类型检查,执行条件操作或者执行多态性操作。在这个详细教程中,我们将深入探讨`instanceof`的关键字用法,并通过实例代码来理解它的功能和应用场景。...

    前端面试题之baseJS-instanceof.zip

    4. **使用场景**:`instanceof`常用于确定对象类型,比如在进行类型检测、类库兼容性检查或确保函数正确执行时。它可以帮助我们避免硬编码特定类型的检查,提升代码的灵活性和可维护性。 5. **注意事项**:`...

    Android中Java instanceof关键字全面解析

    在这个例子中,`s`是一个`String`对象,而`String`类继承自`Object`类,因此`s instanceof Object`的结果为`true`。 在Android开发中,`instanceof`常用于处理不同类型的对象,尤其是在处理继承关系复杂的类体系时...

    Java中instanceof关键字的用法总结

    总之,`instanceof`关键字在Java中是进行动态类型检查的重要工具,它允许我们根据对象的运行时类型执行不同的操作,这对于编写灵活、可扩展的代码至关重要。在设计和实现多态系统时,`instanceof`是不可或缺的一部分...

    java基础——方法的重写、多态+instanceof(csdn)————程序.pdf

    这个运算符在处理多态时非常有用,可以用来判断对象的实际类型,以便执行适当的操作。 在使用多态时,应避免重写静态方法、final 常量和私有方法,因为它们不会受到多态的影响。静态方法属于类而不是实例,final ...

Global site tag (gtag.js) - Google Analytics