关于getClass与class的疑问
if(obj.getClass()==Cat.class) { Cat cat=(Cat)obj; //对象的值是否相同用equals方法,int数据类型用==判断 return cat.getName().equals(name)&&(cat.getMonth()==month)&&(cat.getSpecies().equals(species)); }
obj调用的是getClass()方法,cat调用的却是class方法而且没有括号,两者可以互换调用吗,区别是什么
源自:Java集合
3-8 添加重复数据
2
收起
正在回答
1回答
同学你好,
1、obj.getClass():在java中通过反射,根据对象来获取类的对象的信息,obj.getClass()就是获取传入参数obj对象的类型信息。
Cat.class:同样是通过反射,但这个是根据Cat类获取对象信息。
if(obj.getClass()==Cat.class) 就是判断我们要进行比较的obj的对象类型信息与Cat的对象类型信息是否相等。如果类型信息都是猫,则进行属性信息的比较~
2、两者不可以互换,区别:getClass()只能通过对象进行调用,class只能通过类名进行调用。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
Java零基础入门18
- 参与学习 人
- 提交作业 7317 份
- 解答问题 14452 个
想要入门学编程?多年一直活跃在编程语言排行版前列的Java是一个很好的选择。本路径将从Java基础语法、面向对象、常用工具类三部分,为你开启软件开发的大门!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星