.containsKey中的Java NullPointerException

.containsKey中的Java NullPointerException,java,nullpointerexception,Java,Nullpointerexception,我对Java非常陌生。试图访问HashMapobservationMap中的字段,当我检查HashMap是否包含键时,会被告知存在NullPointerException。特别是在getEventSpeed()方法中 .containsKey()应返回NULL,因此不清楚此行如何导致if语句出现问题 谢谢你的帮助 public class IsDrivingObservation { private Map<String,String> observationMap; p

我对Java非常陌生。试图访问HashMap
observationMap
中的字段,当我检查
HashMap
是否包含键时,会被告知存在
NullPointerException
。特别是在
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);
  }

}
公共类是驱动观察{
私人地图观测地图;
公共字符串getEventSpeed(){
if(observationMap.containsKey(“事件速度”)){
返回observationMap.get(“eventSpeed”);
}
返回“foo”;
}
public void setEventSpeed(字符串速度){
观测地图。放置(“事件速度”,速度);
}
}

您永远不会创建
观测地图。试试这个:

private Map<String,String> observationMap = new HashMap<>();
private-Map-observationMap=new-HashMap();
否则,您将在两种方法中获得
NPE

这取决于您首先调用的方法。

嗨,Stefan,谢谢您的及时回复。“现在看来很明显了。”娜塔莎·惠特尼很高兴帮助你。点击我答案左上角的白色钩子,你就可以自由地接受我的答案。