我正在整合由兩個不同的人編寫的代碼,並注意到將字符串值轉換爲長整型已經以兩種不同的方式完成。Long.valueOf(java.lang.String)和new Long(java.lang.String)之間的區別?
編碼器#1已完成此:
String strId = "12345678";
...
Long lId = new Long(strId);
雖然譯碼器#2已完成此:
String strId = "12345678";
...
Long lId = Long.valueOf(strId);
在功能上,代碼操作完全相同。每個位都有一個try/catch塊來處理拋出的任何NumberFormatException
。傳入的字符串值是一個8位字符串,表示小數點:"12345678"
,並且在這兩種情況下都正確轉換爲Long
。
傳遞構造函數中的字符串和使用Long.valueOf()之間是否有任何功能差異?我檢查構造文檔在這裏:這裏
和的valueOf(該文檔):
Long.valueOf(java.lang.String)
據我所知,他們都稱parseLong(),所以使用哪個並不重要。我只是想確保我不會在進一步的道路上爲自己的一些奇怪行爲而自責。另外,哪種風格比其他風格更「正確」(哈哈)?
這正是我在查閱這個http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/Long.java之前所瞭解的內容。來源鏈接。 –
@ArunManivannan ..您可以在jdk安裝目錄中找到源代碼。進入'C:\ Program Files \ Java \ jdk',會有一個'src'文件夾。可能是壓縮格式。解壓縮。轉到'java - > lang - > Long.class'來查看源代碼。 –
這非常有幫助,感謝代碼片段和解釋。 – AWT