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;
 }
添加回答
举报
