总结:Java Puzzlers一书中的谜题50
看几行代码:
-
publicclassMain{
-
publicstaticvoidmain(String[]args){
-
Strings=null;
-
System.out.println(sinstanceofString);
-
System.out.println(newMain()instanceofString);
-
Mainm=(Main)newObject();
- }
- }
当然,3个instanceof所在的语句不应该写到一个例子中,明白即可。
第一个,System.out.println(sinstanceofString); null对于每一个引用类型来说都是其子类型,但是instanceof操作符被定义为在其左操作数为null时返回false。所以 s instanceof String 的结果是false。
第二个, System.out.println(newMain()instanceofString);这个会导致编译错误,编译的时候就可以确定两个类型没有继承关系。
第三个,这个不会导致编译错误,但会在运行时出错,类型转换错误,毕竟创建的这个对象的实际类型不是Main.
关键:能够分清楚什么情况下出错,为什么出错。
分享到:
相关推荐
使用 typeof 和 instanceof 还有其他一些区别,例如 alert(typeof(window)) 会得 object,但 window 不是一个 object 类型的对象,而是一个 Window 对象。 typeof 和 instanceof 都是 JavaScript 中的基本运算符,...
本文将详细解释`instanceof`的关键特性和使用场景,并通过示例代码加深理解。 #### 一、基本概念 `instanceof`的关键作用在于类型检查,即判断一个对象是否属于指定的类或接口类型。其语法结构为: ```java ...
ES5的instanceof手写实现
javascript中如何准确判断一个变量是什么,面试中这是考一个人基本功扎不扎实必定会问的一个问题。如果你还不是很清楚,相信这篇文章会...使用instanceof可以用来判断一个变量是数组还是对象,原理如下: 数组也是对象
在这个例子中,`generatePage`方法通过类型提示确保了传入参数的类型,然后使用`instanceof`进一步确认。 ### 总结 `instanceof`操作符是PHP 5面向对象编程中一个重要的工具,它使得开发者能够有效地验证和控制...
在JavaScript中,`instanceof`和`prototype`是两个非常重要的概念,它们涉及到对象的类型检测和继承机制。本文将深入探讨这两个关键字的...了解和掌握这两个概念,对于理解和使用JavaScript的面向对象特性至关重要。
15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof...
例如,可以使用`instanceof Array`来确认一个对象是否为数组,或者使用`instanceof Date`来判断一个对象是否为日期类型。 但是,`instanceof`依赖于原型链的完整性,如果对象的原型链被修改或破坏,可能会导致错误...
正确使用向下转型的关键在于`instanceof`运算符。`instanceof`用于检查对象是否属于特定的类或者实现了特定的接口。在Java中,其语法是`object instanceof ClassName`,而在Delphi中,虽然没有直接的`instanceof`...
在JavaScript编程语言中,`instanceof` 和 `typeof` 是两个非常重要的操作符,用于判断变量的类型。它们各自有着不同的用途和用法,对于理解和调试代码至关重要。 首先,我们来详细了解一下`instanceof`操作符。`...
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
instanceof 马克-to-win java视频的详细的描述介绍
在"288.286.JAVA基础教程_面向对象(中)-instanceof关键字的使用(288)"这个教程中,我们将深入探讨`instanceof`的用法和它在实际编程中的应用。 `instanceof`的基本语法是`object instanceof ClassName`,这里的`...
instanceof运算符的使用有助于理解JavaScript中的原型继承机制。 在JavaScript中,每个对象都有一个原型(prototype),原型本身也是对象,并且继承自另一个原型,直到原型链的终点,这个终点通常是Object....
1. **避免使用`instanceof`检查`null`**:对于`null`,直接使用`=== null`进行判断更为合适。 2. **注意跨域问题**:当涉及跨窗口或iframe通信时,避免依赖`instanceof`进行类型检查,可以使用更直接的方法,如`...
需要注意的是,在for循环中应该使用'in'来遍历对象t中的键,而不是使用'instanceof'。'instanceof'运算符通常用在if语句中对单个对象和构造函数进行检查。在上述示例中,instanceof被用来检查传入的obj是否是t对象中...
当使用 `instanceof` 检查一个对象 `obj` 是否是构造函数 `C` 的实例时,实际上是在检查 `obj.__proto__` 是否指向 `C.prototype`。如果指向,或者沿着 `obj` 的原型链向上查找,能找到 `C.prototype`,那么 `obj` ...