Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
2016-07-28 14:30
597 查看
Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类(父类)或接口。
格式为:
Class1.isAssignableFrom(Class2)
调用者和参数都是java.lang.Class类型。
而instanceof运算符是用来在运行时指出对象是否是特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
result:布尔类型。
object:必选项。任意对象表达式。
class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201610/cc25e04f7be8d93fb1aa6ac965665bfa.png)
package com.bill99.pattern;
public class AssignableTest {
public AssignableTest(String name) {
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom1() {
System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom2() {
System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
}
/**
* 判断一个类是否和另一个类相同
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom3() {
System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
}
/**
* 判断str是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf1() {
String str = new String();
System.out.print("str是Object的实例:");
System.out.println(str instanceof Object);
}
/**
* 判断o是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf2() {
Object o = new Object();
System.out.print("o是Object的实例:");
System.out.println(o instanceof Object);
}
public static void main(String[] args) {
testIsAssignedFrom1();
testIsAssignedFrom2();
testIsAssignedFrom3();
testInstanceOf1();
testInstanceOf2();
}
}
结果:
String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true
转自:http://sunnylocus.iteye.com/blog/555676
格式为:
Class1.isAssignableFrom(Class2)
调用者和参数都是java.lang.Class类型。
而instanceof运算符是用来在运行时指出对象是否是特定类或者是它的子类的一个实例。
用法:
result = object instanceof class
参数:
result:布尔类型。
object:必选项。任意对象表达式。
class:必选项。任意已定义的对象类。
说明:
如果 object 是 class 的一个实例,则 instanceof 运算符返回 true。如果 object 不是指定类的一个实例,或者 object 是 null,则返回 false。
Java代码
![](https://oscdn.geek-share.com/Uploads/Images/Content/201610/cc25e04f7be8d93fb1aa6ac965665bfa.png)
package com.bill99.pattern;
public class AssignableTest {
public AssignableTest(String name) {
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom1() {
System.out.println("String是Object的父类:"+String.class.isAssignableFrom(Object.class));
}
/**
* 判断一个类是否是另一个类的父类
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom2() {
System.out.println("Object是String的父类:"+Object.class.isAssignableFrom(String.class));
}
/**
* 判断一个类是否和另一个类相同
* 是打印true
* 否打印false
*/
public static void testIsAssignedFrom3() {
System.out.println("Object和Object相同:"+Object.class.isAssignableFrom(Object.class));
}
/**
* 判断str是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf1() {
String str = new String();
System.out.print("str是Object的实例:");
System.out.println(str instanceof Object);
}
/**
* 判断o是否是Object类的实例
* 是打印true
* 否打印false
*/
public static void testInstanceOf2() {
Object o = new Object();
System.out.print("o是Object的实例:");
System.out.println(o instanceof Object);
}
public static void main(String[] args) {
testIsAssignedFrom1();
testIsAssignedFrom2();
testIsAssignedFrom3();
testInstanceOf1();
testInstanceOf2();
}
}
结果:
String是Object的父类:false
Object是String的父类:true
Object和Object相同:true
str是Object的实例:true
o是Object的实例:true
转自:http://sunnylocus.iteye.com/blog/555676
相关文章推荐
- Android Native 绘图方法
- C#中struct和class的区别详解
- VBS ArrayList Class vbs中的数组类
- 大家看了就明白了css样式中类class与标识id选择符的区别小结
- 深入了解PHP类Class的概念
- jquery 表单验证之通过 class验证表单不为空
- setAttribute 与 class冲突解决
- JavaScript通过HTML的class来获取HTML元素的方法总结
- JavaScript中的类(Class)详细介绍
- 原生js实现class的添加和删除简单代码
- javascript面向对象包装类Class封装类库剖析
- jQuery针对input的class属性写了多个值情况下的选择方法
- 详解js中class的多种函数封装方法
- jQuery使用hide方法隐藏指定元素class样式用法实例
- jQuery给多个不同元素添加class样式的方法
- jQuery点击改变class并toggle及toggleClass()方法定义用法
- jquery采用oop模式class类的使用示例
- jquery点击改变class并toggle的实现代码
- JavaScript更改class和id的方法
- 一篇入门的php Class 文章