public class Compare { public static void main(String[] args) { Object o1 = new A(); Object o2 = new B(); System.out.println(o1 instanceof A); System.out.println(o1 instanceof B); System.out.println(o2 instanceof A); System.out.println(o2 instanceof B); System.out.println("--------------------"); System.out.println(o1.getClass().equals(A.class)); System.out.println(o1.getClass().equals(B.class)); System.out.println(o2.getClass().equals(A.class)); System.out.println(o2.getClass().equals(B.class)); System.out.println("--------------------"); System.out.println(o1.getClass().isAssignableFrom(A.class)); System.out.println(o1.getClass().isAssignableFrom(B.class)); System.out.println(o2.getClass().isAssignableFrom(A.class)); System.out.println(o2.getClass().isAssignableFrom(B.class)); } } class A {} class B extends A{}
true false true true -------------------- true false false true -------------------- true true false true
对象 instanceof 类 ,判断对象可否成功转换成对应类的对像
对象.getgetClass().equals(类),判断对象的类和比较的类是不是一个类
对象.getClass().isAssignableFrom(类),判断对象的类是否是比较的类或是比较的类的超类超接口。