Diferença entre Long.valueOf (java.lang.String) e new Long (java.lang.String)?
Estou consolidando código escrito por duas pessoas diferentes e percebo que converter um valor String em um Long foi feito de duas maneiras diferentes.
Coder # 1 fez isso:
String strId = "12345678";
...
Long lId = new Long(strId);
Enquanto codificador # 2 fez isso:
String strId = "12345678";
...
Long lId = Long.valueOf(strId);
Funcionalmente, o código funciona exatamente da mesma maneira. Há um bloco try / catch em torno de cada bit para lidar com qualquerNumberFormatException
que é jogado. O valor da string de entrada é uma string de 8 dígitos que representa um decimal:"12345678"
e em ambos os casos é corretamente convertido emLong
.
Existe alguma diferença funcional entre passar a string no construtor e usar Long.valueOf ()? Eu verifiquei o documento do construtor aqui:
e os documentos para valueOf () aqui:
Long.valueOf (java.lang.String)
Tanto quanto eu posso dizer, ambos chamam parseLong (), então não importa qual é usado. Eu só quero ter certeza de que não estou me preparando para um comportamento estranho mais adiante. Além disso, o estilo é mais "correto" (haha) do que o outro?