.containsKey 中的 Java NullPointerException

标签 java nullpointerexception

我对 Java 很陌生。尝试访问 HashMap 中的字段 observationMap ,并被告知有一个 NullPointerException当我检查 HashMap 是否包含 key 。特别是在 getEventSpeed()方法。

.containsKey()应该返回 NULL,所以不清楚这一行如何导致 if 语句出现问题?

感谢您的帮助

public class IsDrivingObservation {

  private Map<String,String> observationMap;

  public String getEventSpeed() {
    if (observationMap.containsKey("eventSpeed")) {
      return observationMap.get("eventSpeed");
    }
    return "foo";
  }

  public void setEventSpeed(String speed) {
    observationMap.put("eventSpeed", speed);
  }

}

最佳答案

你永远不会创建observationMap。试试这个:

private Map<String,String> observationMap = new HashMap<>();

否则您将在两种方法中得到NPE。 这取决于您首先调用哪个方法。

关于.containsKey 中的 Java NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34262115/

相关文章:

Java:在 Eclipse 中出现 "Requires JDK 5.0 or later"错误

java - 条形图问题(使用 JFreechart)

java - 扩展注释的接口(interface)

java - Mapstruct 多对一映射

java - 在鼠标单击上添加文本字段和标签不起作用 Java

java - 从 exiftool 读取二进制图片数据?

java - AbstractButton.setEnabled(true) 的 NullPointerException

java - Android - NullPointerException - 无法启动 Activity ComponentInfo

java - 引用初始化为 null 的对象数组中的槽

java - 获取空对象引用但 ArrayList 已初始化