java 中的valueOf方法和強轉


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判斷其類型時再強轉

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM