Разница между Long.valueOf (java.lang.String) и новым Long (java.lang.String)?
Я объединяю код, написанный двумя разными людьми, и замечаю, что преобразование значения String в Long выполняется двумя различными способами.
Кодер № 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 (), поэтому не имеет значения, какой из них используется. Я просто хочу убедиться, что я не настрою себя на какое-то странное поведение в будущем. Кроме того, является ли один стиль более "правильным" (ха-ха), чем другой?