您的位置:首页 > 其它

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代码  


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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  class