通常object到string有四種方式:(假設有object obj)
obj.tostring,
convert.tostring,
(string)obj,
obj as string。
他們都能將object物件轉換成string物件。我就講講他們的異同以及在實際中應該使用哪個。
前兩個方法通常是由別的物件得到string物件,它們間的區別只表現在要轉換的物件為null時,如果obj為null,呼叫obj.tostring方法會導致nullreferenceexception異常,呼叫convert.tostring不會丟擲異常而返回乙個null。
用強制轉換(string)obj要求obj的執行時型別必須是string。如果不是,就會丟擲異常。用as方法則會相對平穩,當obj的執行時型別不是string時會返回null而不丟擲異常。
所以在通常在我們需要得到某個物件的string表達形式時,我們應該使用tostring和convert.tostring,這時候你就得根據情形選乙個,假如你能保證你的物件不為null,則兩個差不多。如果有可能為null,你就應該用convert.tostring,如果你希望它為null的時候丟擲異常,那麼當然可以選擇.tostring。
如果我們是將乙個string物件放在容器(如session)中,而取出時是object物件,這時我們必須將之轉換回string物件,那麼我建議使用as或(string)obj強制轉換。如果我們用.tostring,那麼我們就必須在使用前先檢查是否為null,而使用.tostring和 convert.tostring有可能隱藏錯誤,比如你可能用乙個username標識乙個user的名字,即string型別,但可能你會在另一處無意寫下session["username"]=(另乙個物件),於是你在後面取這個值的時候便取到後面的這個值,由於你是用的.tostring,所以仍然會成功執行,只是值已不是你希望的值,於是錯誤在不知不覺中隱藏過去了。如果你是用的as,這時候你取到的就是null值,如果你是用的 (string)obj強制轉換,則會丟擲異常。這樣我們才能發現這個異常。
總之,我們應該了解它們之間的區別,具體在用時才能選最適合的乙個
Object 和 String 的equals比較
先看一段string 和 乙個普通類的equals方法的比較 object 中的equlas的使用 author dell public class testequals dog 中的沒有equals方法的重寫 author dell public class dog cat 重寫了equals方法...
JSON轉Object的方式
2018年03月16日 20 59 43 晚安晚安沒你怎安 閱讀數 6779 以下為部分 片段 import com.alibaba.fastjson.jsonobject object obj new object obj是乙個有user相同屬性的物件 user user jsonobject.p...
JSON轉Object的方式
2018年03月16日 20 59 43 晚安晚安沒你怎安 閱讀數 6779 以下為部分 片段 import com.alibaba.fastjson.jsonobject object obj new object obj是乙個有user相同屬性的物件 user user jsonobject.p...