项目中经常看到有人喜欢用Long.valueOf()去将String转成long,我都忍不住去改Convert.asLong()。
原因是如果字符串不管是null还是空串,Long.valueOf()都会抛出异常,导致一些不必要的线上故障( java.lang.NumberFormatException : For input string: “”)。而Convert.asLong()能将null或空串直接转成0,也可以指定默认值。
总结
我觉得相对来说,用Convert.asLong()能规避风险,减少调用Long.valueOf()之前的一系列为空判断。同理,其他类型转换也是如此。
Long.valueOf()转字符串其实也是调用parseLong()去实现的
下面是parseLong()部分源码
public static long parseLong(String s, int radix)throws NumberFormatException