在将字符串转换为整形时sonar推荐的是Integer.parseInt,而不是Integer.valueOf,原因是前者效率更高。进入Integer.valueOf内部就知道了:
代码语言:javascript复制 public static Integer valueOf(String s) throws NumberFormatException {
return Integer.valueOf(parseInt(s, 10));
}
public static Integer valueOf(int i) {
assert IntegerCache.high >= 127;
if (i >= IntegerCache.low && i <= IntegerCache.high)
return IntegerCache.cache[i (-IntegerCache.low)];
return new Integer(i);
}
后者会额外创建一个临时Integer对象,尤其在循环中慎用Integer.valueOf,优先选择Integer.parseInt