一、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
结果
E:\test>javac sic.java
E:\test>java A
true
true
true
true
E:\test>
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>