1,对象与类的比较
被测对象(自身/子类实例) instanceof 自身类
检查左边的被测试对象是不是右边类的实例化。如果被测对象是null值,则测试结果总是false
String s=new String("javaisland");
System.out.println(s instanceof String); //true
Class.isInstance(Object obj)
obj 是被测试的对象,如果 obj 是这个 class 的实例,则返回 true。这个方法是 instanceof 运算符的动态等价。
String s=new String("javaisland");
System.out.println(String.class.isInstance(s)); //true
2,类与类的比较
Class.isAssignableFrom(Class cls)
cls 是被测试的类,如果 class 与参数 cls 相同或者是其父类,则返回true
System.out.println(ArrayList.class.isAssignableFrom(Object.class)); //false
System.out.println(Object.class.isAssignableFrom(ArrayList.class)); //true