Hashmap 崩溃日食
Posted
技术标签:
【中文标题】Hashmap 崩溃日食【英文标题】:Hashmap crashing eclipse 【发布时间】:2011-10-03 11:12:04 【问题描述】:我正在尝试通过解析 android 中的 plist 文件来加载哈希图,使用此处的 plist 解析器:https://github.com/ZhouWeikuan/cocos2d。 这在过去一直运行良好,但最近我的程序在使用此哈希映射时(解析后)出现空指针异常。 当我尝试调试时,eclipse 开始表现得很奇怪。解析器返回哈希图,我可以在变量视图中查看它的值。当我跨过分配给“世界地图”的线时,日食挂起。当试图在调试模式下查看 worldMap 的值时,我可以看到一个空行但没有值 - 最终 eclipse 崩溃了。
Map worlds = (Map)getWorlds().get("Worlds");
Map worldMap = (Map)worlds.get(String.valueOf(world));
Map levels = (Map)worldMap.get("Levels");
但是,当正常运行程序时,空指针异常会在这些行之后出现。 另外,当我尝试调试时,它不会总是在同一个位置崩溃,所以我很难找到这个错误的来源......
有人知道怎么回事吗?
【问题讨论】:
【参考方案1】:无法确切告诉您发生了什么,但 NullPointerException 肯定是一个很大的提示。
在上述示例中的每一行代码之后添加一些空检查,我敢打赌,您将能够很快找到错误:
Map whatEverThisIs = (Map)getWorlds();
if (whatEverThisIs == null)
/* Do something here */
Map worlds = (Map)whatEverThisIs.get("Worlds");
if (worlds == null)
/* Do something here */
Map worldMap = (Map)worlds.get(String.valueOf(world));
if (worldMap == null)
/* Do something here */
Map levels = (Map)worldMap.get("Levels");
if (levels == null)
/* Do something here */
【讨论】:
好吧,f*k。我以为我在问这个问题之前已经仔细检查了所有内容。当所有键都是字符串时,我正在做 *map.get(integervalue) ... 太棒了,很高兴你把它弄明白了!以上是关于Hashmap 崩溃日食的主要内容,如果未能解决你的问题,请参考以下文章