case1:Object 對象轉String
需要強調的是String.valueOf()方法,當參數為類型是object,且值時null的時候他的處理方式
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
這樣在后面的成都不會報錯但是在邏輯上可能出錯,一般習慣寫的是str!=null && str.length()>0
當是由 str = String.valueOf(obj)得到時上面的額判斷條件就有問題了
所以遇到 Object 對象轉String 最好強轉 str= (String) obj此時,當obj為null時,str依然為null
case2:Object 裝基本類型的包裝類型,(關注integer和Long,Double)
首先 obj被賦值之后 obj還是屬於數據所屬基本類型的包裝類型可以通過instanceOf 判斷知道.
所以直接用強轉就可以,沒有必要用類似Long.ParseLong(String.valueOf(obj))這類方法,用這中復雜的問題會有一個問題就是不能返回值不能包含null
如果是null就直接拋出異常了,因為在String.valueOf()方法時已經把null轉為字符串了,而Long.parseLong()方法如果傳入了null字符串就會報異常,
Long.ParseLong(String.valueOf(obj)) 方法就等價與 (long)obj,用基本類型去強轉
更好的做法是用(Long)obj去強轉,在后面的程序中做null情況的判斷和處理
case3: 基本類型的包裝類型和String的vlaueOf方法對與obj=null的處理是不一樣的,String.valueOf(obj)的處理返回的"null"字符串,而基本類型的包裝類型返回的null
強調一下,String不是基本類型,更不是基本包裝類型
總結:1遇到obj類型轉string時最好強轉
2遇到obj類型轉幾倍類型的包裝類型時最好強轉,如果需要可以先用instanceOf判斷其類型時再強轉