private static HashMap<Integer,JSONObject> mallMap = null ;
HashMap<Integer,JSONObject> userMallMap = new HashMap<Integer,JSONObject>() ; // Iterator it = this.mallMap.entrySet().iterator(); // while (it.hasNext()) { // HashMap.Entry entry = (HashMap.Entry) it.next(); // Integer key = (Integer)entry.getKey(); // JSONObject val =(JSONObject) entry.getValue(); // userMallMap.put(key, val); // } for(Iterator it = this.mallMap.keySet().iterator() ; it.hasNext();) { String key = it.next().toString(); userMallMap.put(Integer.valueOf(key), this.mallMap.get(Integer.valueOf(key))); }
即便是通过上面两种遍历数据的方式赋值,当非静态变量userMallMap的值变化时,静态变量mallMap的值也是同步跟着变化的(debug时追踪值发现),需要在开发中注意这种情况,防止静态值被莫名的修改,导致逻辑错误。