Java HashMap获取一个元素并设置为自定义值类型

Java HashMap获取一个元素并设置为自定义值类型,java,nullpointerexception,Java,Nullpointerexception,设置get元素并设置为自定义值类型时出现问题。 这是我的自定义类型类用户 public class User { private List<Integer> FriendList=new ArrayList<Integer>(); //Uid list private HashMap<String,String> CheckinMap =new HashMap<String, String>(); // location and time

设置get元素并设置为自定义值类型时出现问题。 这是我的自定义类型类用户

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);
 }  
}
公共类用户{
私有列表FriendList=newArrayList();//Uid列表
private HashMap CheckinMap=new HashMap();//位置和时间
私用Uid;
公共用户(int-uid){
this.Uid=Uid;
}
公共int getId(){
返回Uid;
}
公共无效设置签入(HashMap InMap){
this.CheckinMap=(HashMap)InMap;
}
public void setAFriend(int-uid){
这个.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();
     }
HashMap UserMap=newhashmap();
HashMap InMap=新的HashMap();

对于(i=0;i从这段代码中,我应该假设auser的UID始终与其索引相同


如果我的假设是错误的,这是一个原因,您应该要求
UserMap.get(temp\u uid)
not
UserMap.get(i)

您似乎将Java命名约定与C#约定混为一谈。这使您的代码更难阅读。您是对的。我最近写了更多的C#。顺便说一句,问题肯定是
UserMap
get(I)的返回值
being
null
。很可能是后者,但坦率地说,我不太确定这段代码应该做什么;它与域无关。如果你不小心使用了
I
而不是
temp\u uid
,下面的答案可能是正确的。不管怎样……你为什么不使用类似的库来处理你公司的JSON呢判定元件?