首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求教好手, 为何会出现空指针

2013-01-23 
求教高手, 为何会出现空指针为了表述清楚, 我把代码简化了下大致是这样MapString, Integer map new Ha

求教高手, 为何会出现空指针
为了表述清楚, 我把代码简化了下  大致是这样


Map<String, Integer> map = new HashMap<String, Integer>();
String str = "GGG";
Integer i = Math.random()*10 > 7? 5 : null;
System.out.println(i);

map.put(str, map.get(str)==null ? i : (map.get(str) + (i==null? 1 : i)));

当i 随机到null时候, 最后一行会抛出空指针
最后一行put的时候为何会出现空指针异常? 按理说三目运算符判断为真的时候, 是不会执行第二个表达式的
请教各位高手 java null hashmap
[解决办法]
“三目运算符判断为真的时候, 是不会执行第二个表达式的”这个不是吧
短路求值运算符貌似只有 && 和 
[解决办法]

if(map.get(str)==null)
map.put(str, i);
else if(i==null)
map.put(str, map.get(str)+1);
else
map.put(str, i);

我改成这样就没报错。

[解决办法]
Integer i = null;
Integer x = true ? i : 1;

和为null的Integer有关,i在其运算符内部实现中应该参与了什么运算

热点排行
Bad Request.