旷世难题,求牛人解答

eewcee 2013-01-24 10:47:55


如上图,程序报错,调试的时候发现
1.get出来是空
2.判断!=null报错了
3.判断==null 是true
这究竟是什么原因。。
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
eewcee 2013-01-24
  • 打赏
  • 举报
回复
引用 2 楼 scottxzj 的回复:
好难呀 我就看到了 16个keyset
代码更新了,求解答
eewcee 2013-01-24
  • 打赏
  • 举报
回复
引用 1 楼 ticmy 的回复:
就一个图让人怎么看呐 贴关键代码
代码更新了,求解答
eewcee 2013-01-24
  • 打赏
  • 举报
回复
  	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() {
	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;
    }
snow-is-my-Love 2013-01-24
  • 打赏
  • 举报
回复
好难呀 我就看到了 16个keyset
龙四 2013-01-24
  • 打赏
  • 举报
回复
就一个图让人怎么看呐 贴关键代码
熊猫大虾 2013-01-24
  • 打赏
  • 举报
回复
用null != mdata.getValues().get("G01")
song5566tao 2013-01-24
  • 打赏
  • 举报
回复
你那个mnList里有值?

67,515

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧