解析instanceof和getClass().equals()和isAssignableFr...

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(类),判断对象的类是否是比较的类或是比较的类的超类超接口。
相关文章
相关标签/搜索