Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
来源:互联网 发布:淘宝会员注册 编辑:程序博客网 时间:2024/05/19 03:27
原地址:http://topic.csdn.net/t/20050127/15/3758173.html
我略作了下修改
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();
- }
- }
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 458C Elections 贿赂选票抢主席! 线段树
- Windows 7的XP模式提供了一些优点和局限性
- Webstorm最佳的一流的Javascript和HTML编辑器
- WCF概念是多么重要在Microsoft Dynamics CRM
- C# FFmpeg获取码率
- Class.isAssignableFrom(Class clz)方法 与 instanceof 关键字的区别
- MyEclipse中解决“Save could not be completed”问题!
- vtigerCRM的,好vtiger开源,好vtiger开发服务
- CCSprite 更换贴图
- JavaScript的内置对象和浏览器对象
- Uncomplicating真实世界的网站开发和设计方案
- Twitter的测试使用Javascript - 1.1 - 购买Twitter的追随者评论简介
- The striping and assembly algorithms from the Dremel paper( from github, project parquet-mr )
- Twitter的引导购买200 Twitter的追随者支付宝和JavaScript