我試圖使用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