首页 > 代码库 > 关于空指针异常问题
关于空指针异常问题
一直都觉得空指针异常很好改,但是今天竟然调了一上午,郁闷呐,因此开始总结教训:
首先svo是前端所传的对象,判断是否为空,如果为空则进行实例化
if (svo == null) {
//将svo实例化
svo = new DosDossier();
}
String project_num = svo.getProjectNum();
if (project_num.equals(ROOT_NODE) || Strings.isNullOrEmpty(project_num)) {
Map<String, Object> param = Maps.newHashMap();
param.put("svo", svo);
param.put("startDate", startDate);
param.put("endDate", endDate);
}
本来我认为这样写是没有问题的,但是加断点走到if语句就一直报空指针异常,后来才发现if里的判断条件写反了,而且null是没有equals的,当然会报空指针异常,
也就是说当project_num的值为null时,由于null不存在equals(),因此直接报异常,正确的判断如下
if (Strings.isNullOrEmpty(project_num) || project_num.equals(ROOT_NODE))
其他的空指针异常大多就是没加判断是否为空或为null,或者是对象没有实例化
希望以后不会再犯迷糊
关于空指针异常问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。