先看一段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...