【发布时间】:2012-11-25 16:10:37
【问题描述】:
为什么认为在 Java 中使用默认的 Object equals 方法并对其进行修改以使其适用于特定类会更好(通过使用 instanceof 进行验证并使用类型转换):
public boolean equals(Object otherObject)
{
boolean isEqual = false;
if ((otherObject != null) && (otherObject instanceof myClass))
{
myClass classObject = (myClass)otherObject;
if (.....) //checking if equal
{
.....
}
而不是使用新的 equals 方法重载它,该方法特定于需要使用 equals 的每个类:
public boolean equals(myClass classObject)
【问题讨论】:
-
这不是更好,它只是检查相等的真正含义。
-
我认为 OP 会问为什么使用
equals(Object)而不是equals(MyClass)。
标签: java overriding overloading equals