我在設置獲取元素並設置爲自定義值類型時遇到問題。 這裏是我的自定義類型的類用戶HashMap獲取元素並設置爲自定義值類型
public class User {
private List<Integer> FriendList=new ArrayList<Integer>(); //Uid list
private HashMap<String,String> CheckinMap =new HashMap<String, String>(); // location and time
private int Uid;
public User(int uid){
this.Uid=uid;
}
public int getId(){
return Uid;
}
public void setCheckins(HashMap<String,String> InMap){
this.CheckinMap=(HashMap<String, String>) InMap;
}
public void setAFriend(int uid){
this.FriendList.add(uid);
}
}
然後,我分析JSON陣列來獲得數據,我相信解析JSON是在這裏很好。
HashMap<Integer,User> UserMap =new HashMap();
HashMap<String,String> InMap =new HashMap();
for(i=0;i<users.size();i++){
JSONObject auser=(JSONObject)users.get(i);
temp_uid=Integer.parseInt(auser.get("uid").toString());
UserMap.put(temp_uid, new User(temp_uid));
JSONArray checkins=(JSONArray)auser.get("check-ins");
for(j=0;j<checkins.size();j++){
InMap.put(((ArrayList) checkins.get(j)).get(0).toString(), ((ArrayList) checkins.get(j)).get(1).toString());
}
UserMap.get(i).setCheckin(InMap);
checkin_cnt=checkin_cnt+checkins.size();
}
我的Eclipse告訴我,一個例外是java.lang.NullPointerException
在該行。 UserMap.get(i).setCheckin(InMap);
我可以只初始化Uid,但稍後設置FriendList和CheckinMap?這聽起來有線。 請給我一些提示或建議。謝謝
你似乎非常混淆的Java命名與C#的人約定。這會讓你的代碼更難閱讀。 – Powerslave 2013-05-04 20:01:14
你說得對。我最近寫了更多的C#。 – wamos 2013-05-05 03:33:11
順便說一句,這個問題肯定是'UserMap'或get(i)''爲'null'的返回值。很可能後者,但坦率地說,我幾乎不知道這個代碼應該做什麼;它沒有說明域名。如果你不小心使用'i'而不是'temp_uid',下面的答案可能是正確的。反正......你爲什麼不用像** [Jackson](http://jackson.codehaus.org/)這樣的庫來處理代碼中的JSON? – Powerslave 2013-05-05 04:17:48