class.isAssignableFrom

来源:互联网 发布:tinyumbrella java 编辑:程序博客网 时间:2024/05/26 02:22

instanceof 针对实例 
isAssignableFrom针对class对象

 

isAssignableFrom   是用来判断一个类Class1和另一个类Class2是否相同或是另一个类的超类或接口。   
通常调用格式是  

Java代码  收藏代码

  1. Class1.isAssignableFrom(Class2)     


public boolean isAssignableFrom(Class<?> c) {    if (this == c) {        return true;  // Can always assign to things of the same type.    } else if (this == Object.class) {        return !c.isPrimitive();  // Can assign any reference to java.lang.Object.    } else if (isArray()) {        return c.isArray() && componentType.isAssignableFrom(c.componentType);    } else if (isInterface()) {        // Search iftable which has a flattened and uniqued list of interfaces.        Object[] iftable = c.ifTable;        if (iftable != null) {            for (int i = 0; i < iftable.length; i += 2) {                Class<?> ifc = (Class<?>) iftable[i];                if (ifc == this) {                    return true;                }            }        }        return false;    } else {        if (!c.isInterface()) {            for (c = c.superClass; c != null; c = c.superClass) {                if (c == this) {                    return true;                }            }        }        return false;    }}

1 0
原创粉丝点击