2015-02-07 55 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