Map[] apsMap = (Map[])request.getAttribute("APSMAP");有时候我们需要从后台获取一个Map数组,并且使用他。
但是这个Map数组有可能是个null,这时候在前台jsp页面使用
if (apsMap.length>0)
{
for(int i=0;i<apsMap.length;i++)
{
ordrNo=apsMap[i].get("ORDNO")==null?"":apsMap[i].get("ORDNO").toString();
itemNo=apsMap[i].get("ORDITEM")==null?"":apsMap[i].get("ORDITEM").toString();
}
}
类似代码就会报空指针异常。该如何处理?
用三目表达式。
Map dd = new HashMap();
Map[] tt = new Map[1];
tt[0] = dd;
dd.put("ORDNO","");
dd.put("ORDITEM","");
dd.put("PSTDATE","");
dd.put("PSTTIME","");
dd.put("PLANOUTPUTWGT","");
Map[] apsMap = (Map[])request.getAttribute("APSMAP") == null?
tt:(Map[])request.getAttribute("APSMAP");
需要注意的是:1.Map[] tt = new Map[1];必须定义数组长度,否则报错;
2.只能用dd.put("",""); 而不能用tt[0].put("","");