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