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

时间:2011-05-13 21:10:40

标签: java class equality

  

可能重复:
  Does Java guarantee that Object.getClass() == Object.getClass()?

我知道你应该一般使用equals(),但是有两种Class<?>对象可以与equals()相等但不等于==吗?

编辑:我特意想知道是否存在两个类对象

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

这似乎似乎涵盖了可能的重复问题。 (这是密切相关的)

同样,

} someObject.getClass()可能 Method.getReturnType()这样的反思行动。

1 个答案:

答案 0 :(得分:-2)

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

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