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;
?}
添加回答
舉報