课程
/后端开发
/Java
/反射——Java高级开发必须懂的
老师,既然Foo是Class的实例对象,c1、c2也是Class的实例对象,但为什么Foo和c1、c2不相等呢?它们既然都是Class的实例对象,应该是同一类型,是可以比较的呀,但为什么不能比较呢
2017-05-23
源自:反射——Java高级开发必须懂的 1-1
正在回答
你拿类名去和一个对象比较?
五十阳 提问者
你可以通过instansof看看呗,肯定都是同一类型啊,只是实例化方式不同而已.
c1和c2指向同一地址肯定想等啊,你自己去看看父类object类的equals方法吧;要比较就要重写hascode和equals方法;实例化得对象不是地址是什么?你自己直接输出实例化的对象看看,能比较内容的都是重父类的equals方法的。还不懂就去看看api上面有具体的代码,你自己就能看到它是怎么比较实现的。
因为每一个实例化对象都对应着不同的内存空间,所以说他们不相等;我们可以通过重写hascode和tostring方法去实现同一类型的比较。
行,希望能看懂吧
我也是,多看几遍吧.
举报
反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础
3 回答是怎么理解吗
2 回答这句不太理解,
5 回答关于这个demo不理解的地方
3 回答理解记忆问题
6 回答对类类型的理解?