我有一個NullPointerException
在這條線:的NullPointerException在哈希映射的get方法
int qty = mSelectedBottles.get(bottleID);
我檢查了mSelectedBottles
和bottleID
都是NOT NULL。
mSelectedBottles
是Hashmap<Integer, Integer>
類型的,並且是bottleID
類型的int
我有一個NullPointerException
在這條線:的NullPointerException在哈希映射的get方法
int qty = mSelectedBottles.get(bottleID);
我檢查了mSelectedBottles
和bottleID
都是NOT NULL。
mSelectedBottles
是Hashmap<Integer, Integer>
類型的,並且是bottleID
類型的int
因爲,一個空值到原始數據類型的開箱。這裏有足夠的代碼來重新創建NullPointerException
自己
int x;
HashMap<String,Integer> map = new HashMap<String,Integer>();
x = map.get("hello");
不存在價值的自動拆箱是問題。
我們知道自動裝箱是爲了簡化編碼而引入的,但它是一種明確的性能反模式,可能會導致像這樣非直觀的煩人錯誤。
就我個人而言,我總是嘗試通過使任何此類調用顯式地移除自動裝箱,以便儘管代碼有點醜陋,但它也更清楚發生了什麼。
你必須檢查mSelectedBottles.get(bottleID)
是拆箱到原始INT
清晰完美! :) – TheLostMind
在複製粘貼的情況下提供答案的來源總是很好的:http://www.javaperformancetuning.com/news/news159.shtml –
@JunedAhsan:添加了感謝鏈接。 :)。已經讀過那個。 –
後的完整代碼之前空或不是。否則難以看到 –
發佈完整例外將有助於理解您的問題。 – Arne