instanceof表示此操作符左边的变量的实际类型是否是右边类型或右边子类型的一个实例,用法:
a instanceof B
Class1.isAssignableFrom(Class2) 表示Class1类型可不可以引用一个Class2表示的实例。也就是Class1 c = new Class2()是否正确。也就是判断Class2类型是否是Class1类型或且子类型:
例如 class C extends B{}; class B extends A{};
A a = new B();
System.out.println("a instanceof A: "+(a instanceof A));
System.out.println("a instanceof C: "+(a instanceof C));
System.out.println("a instanceof B: "+(a instanceof B));
其结果为
true
false
true
因为变量a的实际类型为B,所以a是B类型的一个实例,也可以说是类型A的子类型B的一个实例。所以1和3为true
又如:
A a = new B();
System.out.println(a.getClass().isAssignableFrom(A.class));
System.out.println(a.getClass().isAssignableFrom(B.class));
System.out.println(a.getClass().isAssignableFrom(C.class));
结果为
false
true
true
这里a的实际类型为B,而B类型可以引用一个B类型或C类型的实例,也就是B a=new B()和B a=new C()。所以这里2和3是正确的。
分享到:
相关推荐
JS中typeof与instanceof的区别
JS:typeof instanceof constructor prototype区别
本文是对JS中typeof与instanceof之间的区别进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
JS中typeof与instanceof之间的区别总结.docx
1. instanceof关键字 2. isInstance()方法 3. instanceof,isInstance,isAssignableFrom区别是什
ES5的instanceof手写实现
因为在项目中遇到了instanceof,因此总结了对instanceof关键字的理解,有需要的可以下载来看看。
15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof运算符.zip15.instanceof...
介绍了java final 和instanceof 关键字的区别,有需要的朋友可以参考一下
instanceof使用详细说明 最详细的 不看后悔的
关于js typeof 与 instanceof 判断数据类型区别及开发使用.docx
实际上,在一个Web应用程序的执行期间,PHP 5提供给开发者至少两种方法来检查对象类型——它们分别是“instanceof”操作符和“类型提示”特征。现在转到本文的主题,我将介绍PHP 5中\\\"instanceof\\\"操作符的使用...
instanceof 马克-to-win java视频的详细的描述介绍
NULL 博文链接:https://chaoyi.iteye.com/blog/2079574
为什么结果会是false呢? 代码如下: [removed] var aColors = [... [removed] 你要区分string 与 String的区别 aColors[0] 是 string值类型, 当然不是String的实例啦。参考下面代码 var aColors = [“red”, “green
instanceof和typeof都能用来判断一个变量是否为空或是什么类型的变量。
向下转型和instanceof运算符的应用.pdf