java:用==或.equals()比较类:有区别吗?

标签 java class equality

<分区>

Possible Duplicate:
Does Java guarantee that Object.getClass() == Object.getClass()?

我知道你应该使用 equals()一般来说,但有没有办法两个Class<?>对象可以等于 equals()但不等于 ==

编辑:我特别想找出是否存在两个类对象,这样

Class<?> cl1 = ...
Class<?> cl2 = ...
cl1.equals(cl2)    ->  true
cl1 == cl2         ->  false

似乎包含在可能重复的问题中。 (密切相关)

也可能类对象是由someObject.getClass()获得的。 -- 一个可能是 Class.forName(...) 的结果另一个来自一系列反射 Action ,如 Method.getReturnType() .

最佳答案

所有对象都有身份(对象在内存中的位置)和状态(对象的数据)。 == 运算符总是比较身份。 equals 的默认实现也比较身份。

更全面的解释: http://www.javapractices.com/topic/TopicAction.do?Id=17

关于java:用==或.equals()比较类:有区别吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997801/

相关文章:

java - 使用 IKVM.NET 的经验

java - Android Parcelable 转换错误

javascript - 在事件触发器上借助函数(动态)创建对象的实例

JavaScript 传递相等

java - 在不同的包中类 getResourceAsStream() 资源

java - 递归地添加节点项。链表

python - 如果我更改了类中的函数名称,该函数会发生什么变化?

php - 类是否只能对其命名空间可见

javascript - 使用 javascript 更改数组中项目的值

c# - 我可以测试两个 ArrayList (C#) 实例的值相等性吗?