2015-02-07 233 views
-1

我试图使用HashMap来存储简单类的实例,名为User。我使用Integer作为键类型,因为我想通过用户标识查找条目,但是当我尝试保存新条目时,我总是收到NullPointerException如何使用int作为HashMap键?

这里的代码,造成问题的片段:

Integer i = Integer.valueOf(id); 
User bob = new User(id, seq, packet.getPort(), packet.getAddress()); 
if (i == null || bob == null) { 
    System.out.println("Null object."); 
} 
users.put(i, bob); 

在用户构造函数中使用的值已经设定,我增加了调试语句从不打印。尽管如此,当我尝试致电users.put(i, bob);时,会发生异常。还有另一种使用int作为键的方法吗?

编辑:我很笨,并没有初始化HashMap本身。

+1

full stacktrace请不要说'if'没用。同时向我们展示如何初始化'用户' – 2015-02-07 21:39:26

+1

我敢打赌,用户是空的! – deathangel908 2015-02-07 21:41:15

+0

你是对的,它是!除了'users.put(i,bob)'这一行上的'NullPointerException'之外,没有任何堆栈跟踪。 – bdben 2015-02-07 21:46:49

回答

0

我想用户(你的HashMap)为空

+0

这是一个疯狂的猜测:p – 2015-02-07 21:41:17

+0

我知道是正确的:P – 2015-02-07 21:41:35

+0

那么如果用户为空,它会打印出“空对象”,否?编辑:我明白了。你说得对。 – bdben 2015-02-07 21:42:05