win*_*ose 3 java equality equals tostring
这是一个理论问题.我有一个我自己设计的对象,带有一堆变量,方法等.我重写了toString方法,主要是为了记录目的,返回变量的值.在我看来,比较这个对象的实例最简单,最直接的方法是比较从toString方法返回的内容.例如,equals方法可能看起来像
public boolean equals(MyObject instance)
{
return toString().equals(instance.toString());
}
Run Code Online (Sandbox Code Playgroud)
有没有理由不这样做?
避免这种模式的一个原因是速度:为了比较使用的相等性toString(),你必须这样做:
String为对象创建临时对象thisString为对象创建临时对象instanceString到第二个String字符如果直接进行比较,可以跳过大部分内容.例如,比较ints直接比较4个字节,而比较它们的字符串表示最多需要9个字节的比较.其他数据类型也会发生类似情况.