我有一个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