java中instanceOf和Class.isInstance(obj)的对比

原创
2014/10/27 23:27
阅读数 6.6K

一.常用Java类检测方法

[1] instanceOf 运算符

instanceOf运算符只被用于对象引用变量,检查左边对象是不是右边类或接口的实例化。如果被测对象是null值,则测试结果总是false。

[2] Class<?>.isInstance(Object obj)方法

isInstance方法,这个方法与instanceof等价,其中obj是被测试的对象或者变量,如果obj是调用这个方法的class或接口的实例,则返回true。如果被检测的对象是null或者基本类型,那么返回值是false;

[3] Class<?>.isAssignableFrom(Class cls)方法

如果调用这个方法的class或接口与参数cls表示的类或接口相同,或者是参数cls表示的类或接口的父类,则返回true。

[4] Class<?>.isMemberClass(Class cls)方法

如果调用这个方法的class或接口是参数cls表示的类中的内部类,或者是参数cls表示的类或接口的父类,则返回true。

[5] Class<?>.isAnonymousClass()方法

判断该类是不是匿名类

 

 

 

展开阅读全文
打赏
2
4 收藏
分享
加载中
java.lang.Class.isInstance(Object)
This method is the dynamic equivalent of the Java language instanceof operator
2017/04/16 20:08
回复
举报
//所以如上等价于
if(obj!=null && obj.getClass()==ObjClass.class)

ObjClass.class错的,父类,接口类也可以啊
2017/04/16 19:57
回复
举报
更多评论
打赏
2 评论
4 收藏
2
分享
返回顶部
顶部