我最近在堆栈溢出上偶然发现了另一个问题,其中一个人建议使用Short.parseShort(String s),另一个Short.valueOf(String s)。
我自己也尝试过这两种方法,但我发现功能并没有不同,而且正式文件也没有真正帮助我:
Short.parseShort:将字符串参数解析为有符号的十进制短数。字符串中的字符都必须是十进制数字,但第一个字符可能是ASCII减号'-‘('\u002D')表示负值,或ASCII加符号'+’('\u002B')表示正值。结果的短值将被返回,就像参数和基10是作为parseShort(java.lang.String,int)方法的参数一样。 Short.valueOf:返回一个短对象,该对象保存指定字符串给出的值。参数被解释为表示有符号的十进制短,就像参数被赋予了parseShort(java.lang.String)方法一样。结果是一个短对象,它表示字符串指定的短值。
两者都接受附加参数radix,并且都抛出一个NumberFormatException。
它们似乎是相同的,但如果是这样的话,为什么两者都存在?
发布于 2017-07-28 07:17:54
valueOf在内部使用parseShort,并将值封装在装箱类型Short中。
public static Short valueOf(String s, int radix)
throws NumberFormatException {
return valueOf(parseShort(s, radix));
}https://stackoverflow.com/questions/45367089
复制相似问题