我试图使用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本身。
full stacktrace请不要说'if'没用。同时向我们展示如何初始化'用户' – 2015-02-07 21:39:26
我敢打赌,用户是空的! – deathangel908 2015-02-07 21:41:15
你是对的,它是!除了'users.put(i,bob)'这一行上的'NullPointerException'之外,没有任何堆栈跟踪。 – bdben 2015-02-07 21:46:49