This question already has answers here:
Different between parseInt() and valueOf() in java?
                                
                                    (12个答案)
                                
                        
                                2年前关闭。
            
                    
我最近在堆栈溢出上偶然发现another question,其中一个人建议使用Short.parseShort(String s)和另一个Short.valueOf(String s)。

我自己都尝试过,但发现功能上没有区别,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对象,它表示由字符串指定的short值。


两者都接受附加的参数radix,并且都抛出NumberFormatException

它们似乎是相同的,但是如果是这样,为什么两者都存在?

最佳答案

valueOf在内部使用parseShort并另外将值包装在盒装类型Short中:

public static Short valueOf(String s, int radix)
    throws NumberFormatException {
    return valueOf(parseShort(s, radix));
}

关于java - Short.parseShort和Short.valueOf之间的Java区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45367089/

10-10 03:08