作为一个Web开发的新手小白,在这半年实习生涯中也学到了不少东西。NullPointerException算是我们新手都应该会遇到的一个坎。
报错的原因大部分因为两个:①:在使用ajax方法接受前端传来的值时,有时前端的某些传参为空则报错。②:在校验实体类的某个属性值时,这个值本身在数据库就为空。所以取出来的时候也就为null。
为了解决这个问题,大部分人会选择 if(xxx!=null):如图
但遇到有大量需要判空的状态下,这样就显得不够优美,而且显得整体代码比较杂乱。
所以我总结了一些好方法。
1.使用StringUtils的isBlank方法,注意这个StringUtils是commons包下的
这个方法可以解决类属性判空问题
if (StringUtils.isBlank(cid)){ return null; }
2.在两string进行对比时,用已知存在的string去equals。
String a = "123"; if(a.equals(cid)){ a = cid; }
3.toString会报错,多用valueof,即使为空也不过是显示为null。
适用于Integer,Float,Double类等
4.最后说说前端vue某些传值如果为空怎么去避免空指针。
在第一层接受前端值时,使用list.set("","req.getParamerter(属性值)"),最后把这个存值的list传给第二层,第二层String 值 = list.get(“key”)。
public void saveServiceAndAbilityInfo(HttpServletRequest request, HttpServletResponse response) throws Exception{ Map<String, String> paramMap = new HashMap<>(); paramMap.put("APPLY_ID", request.getParameter("APPLY_ID")); paramMap.put("APPLY_STATUS",request.getParameter("APPLY_STATUS")); Map retMap = save(paramMap); HttpUtils.showMapToJson(response, retMap); }
如图save为第二层方法。