Java - isAssignableFrom的用法

class1.isAssignableFrom(class2) 

判定此 Class 1对象所表示的类或接口与指定的 Class 2参数所表示的类或接口是否相同,或是否是其超类或超接口。如果是则返回 true;否则返回 false

true:  class1 是父类,  class2子类 

 package cn.com.xxx.xxx.common;

     class A {
     }

     class B extends A {
     }

     public class Test1 {
         public static void main(String[] args) {

             A a = new A();
             B b = new B();
             A ba = new B();
             System.out.println("1-------------");
             System.out.println(A.class.isAssignableFrom(a.getClass()));
             System.out.println(B.class.isAssignableFrom(b.getClass()));
             System.out.println(A.class.isAssignableFrom(b.getClass()));
             System.out.println(B.class.isAssignableFrom(a.getClass()));
             System.out.println(A.class.isAssignableFrom(ba.getClass()));
             System.out.println(B.class.isAssignableFrom(ba.getClass()));
             System.out.println("2-------------");
             System.out.println(a.getClass().isAssignableFrom(A.class));
             System.out.println(b.getClass().isAssignableFrom(B.class));
             System.out.println(a.getClass().isAssignableFrom(B.class));
             System.out.println(b.getClass().isAssignableFrom(A.class));
             System.out.println(ba.getClass().isAssignableFrom(A.class));
             System.out.println(ba.getClass().isAssignableFrom(B.class));
             System.out.println("3-------------");
             System.out.println(Object.class.isAssignableFrom(b.getClass()));
             System.out.println(Object.class.isAssignableFrom("abc".getClass()));
             System.out.println("4-------------");
             System.out.println("a".getClass().isAssignableFrom(Object.class));
             System.out.println("abc".getClass().isAssignableFrom(Object.class));
         }
     }

输出:

1-------------
true
true
true
false
true
true
2-------------
true
true
true
false
false
true
3-------------
true
true
4-------------
false
false

参考:https://www.cnblogs.com/greatfish/p/6097507.html

猜你喜欢

转载自blog.csdn.net/qq_26878363/article/details/103732340