【问题标题】:Null Pointer Exception when calling HashMap.put调用 HashMap.put 时出现空指针异常
【发布时间】:2013-10-15 20:47:36
【问题描述】:

我有一个定义了 HashMap 的类:

class AccomplishmentsOutbox {

    HashMap<String, Boolean> mAchBools = new HashMap<String, Boolean>(){{
        put("CgkIlezvppMIEAIQAg", false);
        }
    };
}

在我的 Activity 类中,我添加了:

AccomplishmentsOutbox mOutbox = new AccomplishmentsOutbox();

然后,在一个方法中,我尝试将 HashMap 布尔值设置为 true:

public void onUnlockAchievement(String achievementID) {
    mOutbox.mAchBools.put(achievementID, true);
}

当我将相同的字符串 ID (CgkIlezvppMIEAIQAg) 作为参数传递时,此行会引发空指针异常。是否有任何明显的原因导致错误?提前致谢。

【问题讨论】:

  • 什么是mOutbox?初始化了吗?
  • 请添加mOutbox初始化代码,以及mAchBools如何暴露在外面,因为我不认为它是公开的。
  • 我忘了在我的 Activity 类中添加,我添加了:AccomplishmentsOutbox mOutbox = new AccomplishmentsOutbox();
  • 首先我不会公开 mOutbox.mAchBools,我将使用访问器方法在哈希图中添加或删除内容。此外,在尝试从哈希图中添加或删除值之前,请进行空检查
  • 设置断点并检查mOutboxmOutbox.mAchBools的值

标签: java android parameters nullpointerexception hashmap


【解决方案1】:

你得到一个NullPointerException,因为mOutbox还没有被初始化

确保您在某处使用mOutbox = new AccomplishmentsOutbox();

【讨论】:

  • 我忘了在我的 Activity 类中添加,我添加了:AccomplishmentsOutbox mOutbox = new AccomplishmentsOutbox();
  • 或者mAchBools&lt;init&gt;之后改变了
  • 什么意思?我在试图找到这个空指针异常的原因时迷失了方向。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多