判断是否是同一个类,和实例

一、a instanceof A,=====a是否是A的实例
String s=new String("javaisland");
System.out.println(s instanceof String); //true


二、A.class.isInstance(a)=======a是否是A的实例
   String s=new String("javaisland");
   System.out.println(String.class.isInstance(s)); //true


三、这个是比较class文件的
ArrayList.class.isAssignableFrom(Object.class);  //false
Object.class.isAssignableFrom(ArrayList.class);  //true
    
interface IA{
	public void a();
}
interface IB extends IA{
	public void b();
}
class A implements IA{
    public void a(){
		System.out.println("a");
	}
	
	/**
	*判断几个class文件之间是否有extends 和implements的关系
	*A.class.isAssignableFrom(B.class)
	*A是否是B的父类,或接口;AB是否是同一个类或接口
	*这几个都是true
	*/
	public static void main(String args[]){
		
		//类和接口
		System.out.println(IA.class.isAssignableFrom(A.class));
		System.out.println(IA.class.isAssignableFrom(B.class));
		
		//类和类
		System.out.println(A.class.isAssignableFrom(B.class));
		
		//接口和接口
		System.out.println(IA.class.isAssignableFrom(IB.class));
	}
}
class B extends A{
	
}
     


结果
E:\test>javac sic.java

E:\test>java A
true
true
true
true

E:\test>

猜你喜欢

转载自fulndon.iteye.com/blog/2245439