for(Object[] police :res){
policeResstatisticsObjs.add(new PoliceResstatisticsObj(police[0].toString(), police[1].toString(),police[2].toString(),police[3].toString(),police[4].toString()));
}
当res 为null 就抛空指针异常了为什么会这样啊难道还要判断res为null吗?Java对象指针异常
调试欢乐多
第一、数组为空的,不是null,那么for循环内部的code不会执行,不抛异常。
第二、数组是null,for对一个null对象进行遍历,一定抛异常,这是预先设计好的规则,没什么智能不智能的。
实际情况确实会出现null 但是java 的for循环完全可以不必要循环,抛出空指针异常根本没意义,还要我们自己去判断res是不是null,导致我每个这样的循环之前都要判断res是不是null,很是费解,感觉代码多余
实际情况确实会出现null 但是java 的for循环完全可以不必要循环,抛出空指针异常根本没意义,还要我们自己去判断res是不是null,导致我每个这样的循环之前都要判断res是不是null,很是费解,感觉代码多余你要先弄明白 数组为空和数组为NULL是两个概念。
for循环只是一个语句,应该很难具备智能这一层次的东西。如果是一个类,你或许可以进行判断,自己捕捉异常,从而达到智能的境界,例如检测空数组。举个例子,你的int类型,你进行如此操作 int a ="FUCK".
这个int不够智能,因为他就是一个基本类型,不具备这种判断的能力。
你可以自己定义一个int的类型,这样就可以把这个将字符串赋值给整形的问题给解决掉。所有的智能都是程序员的智能,不是JAVA的智能,也不是Eclipse的智能。LZ应该依靠自己。
String sql = "select sum(t.smoothnum) as a,sum(t.crowdnum) as b,sum(t.congestionnum) as c from T_SITUATION_REGIONSTATE t";
Object[][] res = DBProxy.getMultiResult(sql);
List<RoadsRegionStateObj> roadsRegionStateObjs = new ArrayList<RoadsRegionStateObj>();
if(res!=null){
for(Object[] roads :res){
if(roads!=null){
roadsRegionStateObjs.add(new RoadsRegionStateObj("全市","",roads[0].toString(), roads[1].toString(), roads[2].toString()));
}
}
}
return roadsRegionStateObjs;
}这个res出现了三个null 我该怎么判断啊??