旷世难题,求牛人解答
如上图,程序报错,调试的时候发现
1.get出来是空
2.判断!=null报错了
3.判断==null 是true
这究竟是什么原因。。 null 调试 java --------------------编程问答-------------------- 就一个图让人怎么看呐
贴关键代码 --------------------编程问答-------------------- 好难呀 我就看到了 16个keyset --------------------编程问答--------------------
Map<String, EquipStatusRealData> equipStatusMap = new HashMap<String, EquipStatusRealData>();
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() {--------------------编程问答-------------------- 代码更新了,求解答 --------------------编程问答-------------------- 代码更新了,求解答 --------------------编程问答-------------------- 你那个mnList里有值? --------------------编程问答-------------------- 用null != mdata.getValues().get("G01")
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;
}
补充:Java , Java EE