日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

String.valueOf(Object)与Objects.toString(Object)

發布時間:2023/12/3 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 String.valueOf(Object)与Objects.toString(Object) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

便捷的方法String.valueOf(Object) 自JDK 1.0起就存在,并且是我經常使用的JDK提供的方法之一。 我以前曾在博客上評論過它的價值 。 JDK 1.7引入了 Objects類 ,其中包括Objects.toString(Object)方法。 這篇文章比較了這兩種聽起來相似的方法。

這兩個方法String.valueOf(Object)和Objects.toString(Object)本質上都做相同的事情:如果傳入的對象不為null則調用它的toString()方法;如果將null傳遞給它們,則返回字符串“ null” 。 簡而言之,這兩種方法都旨在提供一種簡單的方法來調用對象的toString()而不必擔心如果結果為null NullPointerException 。

下表比較了String.valueOf(Object)和Objects.toString(Object) 。

特性 String.valueOf(Object) Objects.toString(Object)
Java SE 10方法Javadoc “ 返回Object參數的字符串表示形式。 “ “ 返回調用toString用于非結果null論證和‘空’的null參數。 “
Java SE 10返回Javadoc “如果參數為null ,則字符串等于“ null”; 否則,將返回obj.toString()的值。” “打電話的結果toString一個非null空‘的說法和’ null的說法”
方法修飾符 public static public static
重載版本 valueOf(布爾值)
valueOf(字符)
valueOf(char [],int,int) valueOf(雙) valueOf(float) valueOf(int) valueOf(long) valueOf(對象)
toString(Object)
toString(Object,String)

從表面上看, String.valueOf(Object)和Objects.toString(Object)似乎做同樣的事情。 事實證明它們是相同的。 這是來自OpenJDK的Objects.toString(Object)的代碼:

OpenJDK: Objects.toString(Object)定義

public static String toString(Object o) {return String.valueOf(o); }

上面的代碼片段顯示Objects.toString(Object)方法只是委托給String.valueOf(Object)方法。 接下來顯示String.valueOf(Object)的OpenJDK實現。

OpenJDK: String.valueOf(Object)定義

public static String valueOf(Object obj) {return (obj == null) ? "null" : obj.toString(); }

上面的代碼片段顯示,當需要使用對象的toString()表示形式時,可以調用String.valueOf(Object)或Objects.toString(Object)而沒有NullPointerException風險。 可能有較小的理由偏愛另一個,我通常選擇直接調用String.valueOf(Object)不是通過Objects.toString(Object)對該方法的間接調用。

雖然我通常在默認情況下使用String.valueOf(Object) [而不是Objects.toString(Object) ],但如果傳入的對象為null時,我希望返回字符串“ null”,則替代重載方法Objects.toString(Object,字符串)的優點是,如果傳入的對象為null ,則允許用戶指定要由該方法返回的任何字符串。 因此,例如,如果傳入的對象為null ,則可以使用此方法返回空字符串( "" ),字符串“ nil”,字符串“ none”或任何其他任意字符串。 接下來顯示Objects.toString(Object, String)的OpenJDK代碼清單。

OpenJDK: Objects.toString(Object, String)定義

public static String toString(Object o, String nullDefault) {return (o != null) ? o.toString() : nullDefault; }

關于Objects.toString(Object, String)實現的注意事項是,如果將null傳遞給此方法作為第二個參數,則該方法將返回null (而不是字符串“ null”或任何其他字符串) 。

使用String.valueOf(Object) , Objects.toString(Object)和Objects.toString(Object, String)可以輕松提供對象的字符串表示形式,而無需編寫顯式檢查null 。

翻譯自: https://www.javacodegeeks.com/2018/08/valueofobject-tostringobject.html

總結

以上是生活随笔為你收集整理的String.valueOf(Object)与Objects.toString(Object)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。