如上图,程序报错,调试的时候发现
1.get出来是空
2.判断!=null报错了
3.判断==null 是true
这究竟是什么原因。。null 调试java
1.get出来是空
2.判断!=null报错了
3.判断==null 是true
这究竟是什么原因。。null 调试java
解决方案 »
- java 获取文件的名字
- jsp页面向struts2的action传集合值的问题
- 如何取得iterator里面的值
- SPRING-FRMAEWORK是什么东西呀,能解释一下吗?或者给一些技术资源连接
- 有几个问题想问问大家?
- 新手上路,高分求救简单问题!谢谢!
- 我用JBuild8自动生成了一个EntityBean,BMP的,又自动生成了一个TestClient.java来测试这个EntityBean,却报错?????(在线等待)
- 为什么SSH查询后再update,数据库的其他字段被null覆盖
- CXF与struts2整合问题(急,坐等)
- oracle 使用Java怎样添加、删除行和列,向新得到的表中添加删除修改数据
- java 注解疑问
- xfire客户端调用axis服务端,或者反过来
Map<String, MeasureData> dataMap = dalianRealtimeDataCache
.getCachedRealDataMap(mnList);
for (int i = 0; i < mnList.size(); i++) {
String mn = mnList.get(i);
MeasureData mdata = dataMap.get(mn);
// 判断是否存在实时数据
if (mdata != null && mdata.getValues() != null) {
EquipStatusRealData data = new EquipStatusRealData();
// 下面这行mdata.getValues().get("G01")!=null出错了
//但是改成!(mdata.getValues().get("G01")==null) 就没有问题,a!=null 和!(a==null)有区别么,为什么会出错?
if(mdata.getValues().get("G01")!=null|| mdata.getValues().get("G02")==null)){
data.setLongitude(mdata.getValues().get("G01"));
data.setLatitude(mdata.getValues().get("G02"));
}
List<AlarmData> alarmDataList = alarmDataCache.getAlarmData(mn);
if (alarmDataList != null && alarmDataList.size() > 0) {
// 获取设备的最新一条超标数据
AlarmData alarmData = alarmDataList.get(alarmDataList
.size() - 1);
data.setAlarmType(alarmData.getAlarmType());
} else {
data.setAlarmType(0);// 无超标数据
}
equipStatusMap.put(mn, data);
}
}
return equipStatusMap;另附getValues方法
public Map getValues() {
Map originalValues = super.getValues();
Map filterValues = new HashMap();
if (originalValues == null)
return filterValues;
Iterator itr = originalValues.entrySet().iterator();
while (itr.hasNext()) {
Map.Entry next = (Map.Entry) itr.next();
String key = (String) next.getKey();
Float value = (Float) next.getValue();
if (checkField(key))
filterValues.put(key, value);
else
filterValues.put(key, Float.valueOf(Float.NaN));
}
return filterValues;
}