我最近偶然发现了Stack Overflow上的another question,其中一个人建议使用Short.parseShort(String s)和另一个Short.valueOf(String s)。Short.parseShort和Short.value之间的Java区别
我都一直自己,我发现在功能上没有区别和official Documentation并没有真正帮助我或者:
的Short.parseShort: 将字符串参数作为有符号的十进制short 。字符串中的字符必须全部为十进制数字,但第一个字符可能是ASCII减号' - '('\ u002D')以指示负值或ASCII加号'+'('\ u002B')。表示一个正值。返回结果short值,就好像参数和基数10作为parseShort(java.lang.String,int)方法的参数一样。
Short.valueOf: 返回一个Short对象,它包含由指定的String给定的值。该参数被解释为表示一个带符号的十进制小数,就好像该参数是给予parseShort(java.lang.String)方法一样。结果是一个Short对象,表示由该字符串指定的短值。
两者都接受附加参数radix
,并且都抛出了NumberFormatException
。
他们似乎是相同的,但如果是这样的话,为什么两者都存在?
的最大区别在于,'parseShort'返回一个原语'short',同时'valueOf'返回的一个实例包装类'java.lang.Short'。 – Jesper
一个返回一个原始'short',另一个返回一个盒子'Short' – 4castle
另外,除非你有充分的理由不这样做,否则你可能应该用'int' /'Integer'来代替。 – 4castle