Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
来源:互联网 发布:linux运维面试题及答案 编辑:程序博客网 时间:2024/06/05 10:59
最近研究Spring源码发现很多好玩的事情 ,同时也是自己查缺补漏的过程
Class.isAssignableFrom()是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的子类或接口。
格式为:
Class1.isAssignableFrom(Class2)
调用者和参数都是java.lang.Class类型。
而instanceof是用来判断一个对象实例是否是一个类或接口的或其子类子接口的实例。
格式是:o instanceof TypeName
第一个参数是对象实例名,第二个参数是具体的类名或接口名,例如 String,InputStream。
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
阅读全文
0 0
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- class.isassignablefrom(class clz)方法 与 instanceof
- class.isassignablefrom(class clz)方法 与 instanceof
- class.isassignablefrom(class clz)方法 与 instanceof
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字有什么区别
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字有什么区别
- [javase]class.isassignablefrom(class clz)方法 与 instanceof
- 计算两个日期之间的天数
- Codeforces Round #430 (Div. 2)
- java设计模式--观察者模式
- Android多渠道打包汇总(四)—— 为什么要进行多渠道打包
- 浅析switch
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- 字符串插入逗号
- spark学习-26-Spark性能调优(1)
- DML、DDL、DCL
- Android多渠道打包汇总(五)—— 友盟的多渠道打包方式
- Idea使用中遇到的报错
- 精通 Groovy
- 数组中只出现一次的数字
- cnpm全局安装