让人头大空指针异常(NPE)
反例:
public void one(String parm) {
String[] parmArr = parm.split("&");
String no = parmArr[3];
}
Q:如上两行代码,可能会出现多少个bug?
A:(自己想。)
正例:
public void two(String parm) {
if (parm == null || "".equals(parm.trim())) {
return;
}
String[] parmArr = parm.split("&");
String no = parmArr.length > 3 ? parmArr[3] : null;
}
正例升级版:借助 apache 工具类来避免 NPE,进而避免任务异常结束
import org.apache.commons.lang.ArrayUtils;
import org.apache.commons.lang.StringUtils;
public void three(String parm) {
String[] parmArr = StringUtils.split(parm, "&");
String no = ArrayUtils.getLength(parmArr) > 3 ? parmArr[3] : null;
}
尽量使用工具去完成这种简单的事,如果没条件用 apache 工具类,那就自己写各种 if-else 判断吧,注意逻辑要严谨。