我有一个NullPointerException在这一行:
int qty = mSelectedBottles.get(bottleID);
Run Code Online (Sandbox Code Playgroud)
我已经检查过,mSelectedBottles并且bottleID都不是空的.
mSelectedBottles是类型Hashmap<Integer, Integer>和bottleID类型int
Abi*_*san 11
因为,将null值拆分为原始数据类型.这里有足够的代码来NullPointerException自己重新创建
int x;
HashMap<String,Integer> map = new HashMap<String,Integer>();
x = map.get("hello");
Run Code Online (Sandbox Code Playgroud)
不存在的值的自动拆箱是问题.
我们知道引入自动装箱是为了使编码更容易,但它是一种明确的性能反模式,并且可能导致像这样的非常直观的烦恼.
就个人而言,我总是尝试通过明确地进行任何此类调用来删除自动装箱,因此尽管代码有点丑陋,但它更清楚地发生了什么.
mSelectedBottles.get(bottleID)在将其拆箱到原始int之前,您必须检查是否为null
来自Java Performance News Letter
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |