(String)強制轉換、toString()和String.valueOf()的區別


  1. String:毫無疑問,這種就是強轉形式,簡單方便,效率高。java程序員可能看到效率高或許有些激動,但是它有他的不好,那就是局限性。在java的世界里沒有什么東西是沒有缺點的,總有一些好的方面同時也有一些不好的。不好的就是,他只能是強轉原本就是字符串的東西,如果原本不是字符串的話,那么就會報錯。比如:
    1
    2
    3
    4
    5
    Boolean boolean1 =  true ;
             
    String str3 = (String)boolean1; //這行代碼會報錯,編譯不過
    String str4 = boolean1.toString(); //正常
    String str5 = String.valueOf(boolean1); //正常

    通過上面的例子我們就很清晰的明白了,String強轉的方式固然輕松,那么它是有很大的局限性的。在用的時候要謹慎。

  2. toString():在API文檔中是這樣說的,返回此對象本身(它已經是一個字符串了!!!)。按照它的意思就是說一般的對象或者參數都是有toString()的方法的,只是要注意在一個參數定義為int類型是就沒有這個方法了。還有就是當參數為空的時候.toString()方法就會報出空指針異常,這是這個方法的不好的地方使用時需要仔細斟酌一下。比如:
    1
    2
    Object obj = getObject();
    Syystem.out.println(obj.toString());

     就如這上面的代碼表示的一樣,如果obj不為空,那么就能正常編譯,那么如果obj取出來為空的話,那么就會報出空指針異常的。

  3. 最重要的角色出場了String.valueOf():這個方法是靜態的,直接通過String調用,可以說是完美,只是平時不習慣這樣寫而已,這樣的實現避免了前面兩個的不足和缺點。首先來看看他內部的實現機制:
    1
    public  static  String valueOf(Object obj){ return  (obj== null ) ?  "null"  : obj.toString()};

     在內部就是做了為空的判斷的,所以就不會報出空指針異常。

    總結:

      這三者的使用,個人覺得應該使用String.valueOf()的方式。這樣的使用安全可靠,不會帶來異常。說的有不對的地方,希望大家指正批評。

參考: String、String.valueOf、toString 它們三者的區別總結

String、String.valueOf、toString 它們三者的區別總結


免責聲明!

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



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