3 回答
TA贡献55条经验 获得超13个赞
看了下源码 传入参数为anObject,里面一个判断是 this == anObject 应该是只有内存地址相关才会为true
另个一个anObject instanceof String,直接指定了判断类型是否为String
以上似乎只有传入参数类型为String才会进行判断 其他情况都是直接return false
所以个人理解入参写成Object类型只是写通用化模块的编码习惯的问题
public boolean equals(Object anObject) {
if (this == anObject) { //如果内存地址相同
return true;
}
if (anObject instanceof String) { //如果是String类型实例
String anotherString = (String)anObject;
int n = count;
if (n == anotherString.count) {
char v1[] = value;
char v2[] = anotherString.value;
int i = offset;
int j = anotherString.offset;
while (n-- != 0) {
if (v1[i++] != v2[j++])
return false;
}
return true;
}
}
return false;
}
添加回答
举报