Object 和 String 的equals比較

2021-06-19 23:16:38 字數 1334 閱讀 7641

先看一段string 和 乙個普通類的equals方法的比較

/**

* object 中的equlas的使用

* @author dell

* */

public class testequals

}/**

* dog 中的沒有equals方法的重寫

* @author dell

* */

public class dog

}/**

* cat 重寫了equals方法

* @author dell

* */

public class cat

@override

public boolean equals(object anoobject)

if (anoobject instanceof cat)

}return false;

}}

str1和str2的值相等,string的equals在字串中比較的是物件的值,不是引用,和==有區別,這裡不做解釋

第乙個輸出是true,equals比較string物件中的值,兩個都是"123",所以輸出true

同樣的寫法,為什麼輸出比較兩個dog的時候輸出卻是false

dog是object 的子類,string也是object的子類,區別在於string中重寫了object中的equals方法

下面附上string和object 的原始碼

/** 

* string 的equals方法

*/public boolean equals(object anobject)

if (anobject instanceof string)

return true;

}} return false;

}/** * obejct中的equals方法

*/public boolean equals(object obj)

string的equals方法中先是判斷兩個物件的引用是否相同,在判斷字串的長度是否相同,然後判斷每個字串相同...

而object中的equals只判斷物件的引用是否相同,如果引用不同直接返回false

所以說當dog1物件使用equals方法時候呼叫的object 中的equals方法,判斷的是dog1和dog2的引用是否相等

當然不相等,所以輸出false

再看cat類,cat類中實現了對object 方法的重寫,判斷cat中的name屬性的值是否相等。而不是判斷兩個cat物件的引用是否相等

所以輸出true

(原創)String和Object的互相轉換

今天分享乙個比較實用的庫 可以輕鬆實現object和string的轉換 方便日誌除錯,以及特殊的開發場景 比如需要傳遞乙個特殊的string物件過去 就可以這樣轉換 使用方法也很簡單,首先匯入下面這個庫 compile com.alibaba fastjson 1.2.47 然後就是具體的方法了 我...

Unity中的Object和object的區別

object是unityengine.object,是unity所有元件component和遊戲物件gameobject的父類 object在unity中是system.object debug.log gameobject is object true debug.log gameobject i...

無法從「object」轉換為「string」

就我在專案中遇到的問題,和大家分享一下 無法從 object 轉換為 string 在把我出錯的 複製上來,guid userid new guid membership.getuser username provideruserkey 對於這個問題說明的一點就是左右的型別不匹配 才會報錯說無法從o...