关于getClass与class的疑问

关于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方法而且没有括号,两者可以互换调用吗,区别是什么


正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,

1、obj.getClass():在java中通过反射,根据对象来获取类的对象的信息,obj.getClass()就是获取传入参数obj对象的类型信息。

Cat.class:同样是通过反射,但这个是根据Cat类获取对象信息。

if(obj.getClass()==Cat.class) 就是判断我们要进行比较的obj的对象类型信息与Cat的对象类型信息是否相等。如果类型信息都是猫,则进行属性信息的比较~

2、两者不可以互换,区别:getClass()只能通过对象进行调用,class只能通过类名进行调用。

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师