Недавно я наткнулся на еще один вопрос о переполнении стека, где один человек предлагает использовать Short.parseShort (String s) и другой Short.valueOf (String s).
Я попробовал оба варианта и не обнаружил разницы в функциональности и официальная документация мне тоже не помогла:
Short.parseShort: разбирает строковый аргумент как сокращенное десятичное число со знаком. Все символы в строке должны быть десятичными цифрами, за исключением того, что первый символ может быть знаком минус ASCII '-' ('\ u002D'), чтобы указать отрицательное значение, или знаком плюс ASCII '+' ('\ u002B') для обозначения положительного значения. Полученное короткое значение возвращается точно так же, как если бы аргумент и основание системы счисления 10 были переданы в качестве аргументов методу parseShort (java.lang.String, int).
Short.valueOf: возвращает объект Short, содержащий значение, заданное указанной строкой. Аргумент интерпретируется как представление сокращенного десятичного числа со знаком, точно так же, как если бы аргумент был передан методу parseShort (java.lang.String). Результатом является объект Short, представляющий короткое значение, указанное в строке.
Оба принимают дополнительный параметр radix
, и оба выдают NumberFormatException
.
Они кажутся идентичными, но если это так, то почему оба существуют?
parseShort
возвращает примитивshort
, аvalueOf
возвращает экземпляр класса-оболочкиjava.lang.Short
. - person Jesper   schedule 28.07.2017short
, другой возвращает упакованныйShort
- person 4castle   schedule 28.07.2017int
часто является лучшим выбором. - person 4castle   schedule 28.07.2017