Java对象类型的判断详解
instanceof
判断某个对象是否是某个类的实例或者某个类的子类的实例。它的判断方式大概是这样的:
publicbooleanfunction(Objectobj,Class calzz){ if(obj==null){ returnfalse; } try{ Tt=(T)obj; returntrue; }catch(ClassCastExceptione){ returnfalse; } }
Class.equals()
这种方式比较的类型,一定是本身才返回true,子类或者父类都返回false;
//B是A的子类,C是B的子类 Bb=newB(); //false System.out.println(b.getClass().equals(A.class)); //true System.out.println(b.getClass().equals(B.class)); //false System.out.println(b.getClass().equals(C.class));
PS:b.getClass().equals(A.class)等同于b.getClass()==A.class
Class.isInstance()
这个方法跟instanceof完全等价。
//B是A的子类,C是B的子类 Bb=newB(); //true System.out.println(A.class.isInstance(b)); //true System.out.println(B.class.isInstance(b)); //false System.out.println(C.class.isInstance(b));
Class.isAssignableFrom
判断某个类是否是另一个类和其子类。
//B是A的子类,C是B的子类 //false System.out.println(B.class.isAssignableFrom(A.class)); //true System.out.println(B.class.isAssignableFrom(B.class)); //true System.out.println(B.class.isAssignableFrom(C.class));
以上所述是小编给大家介绍的Java对象类型的判断详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。