Różnica między Long.valueOf (java.lang.String) a nowym Long (java.lang.String)?
Konsoliduję kod napisany przez dwóch różnych ludzi i zauważam, że rzutowanie wartości String na Long zostało wykonane na dwa różne sposoby.
Koder # 1 to zrobił:
String strId = "12345678";
...
Long lId = new Long(strId);
Podczas gdy koder # 2 to zrobił:
String strId = "12345678";
...
Long lId = Long.valueOf(strId);
Funkcjonalnie kod działa dokładnie tak samo. Wokół każdego bitu znajduje się blok try / catch do obsługi dowolnegoNumberFormatException
to jest rzucone. Przychodząca wartość ciągu to 8-cyfrowy ciąg reprezentujący liczbę dziesiętną:"12345678"
iw obu przypadkach jest poprawnie przekształcanyLong
.
Czy istnieje jakakolwiek funkcjonalna różnica między przekazaniem ciągu w konstruktorze a użyciem Long.valueOf ()? Sprawdziłem tutaj dokument konstruktora:
i dokumenty dla valueOf () tutaj:
Long.valueOf (java.lang.String)
O ile wiem, oba wywołują parseLong (), więc nie ma znaczenia, który jest używany. Chcę tylko upewnić się, że nie ustawię się na jakieś dziwne zachowanie w dalszej części drogi. Czy styl jest bardziej „poprawny” (haha) niż drugi?