2015-12-14 5 views
1

Я очень новичок в Java. Попытка получить доступ к полю в HashMap observationMap, и мне сказали, что есть NullPointerException, когда я проверяю, содержит ли ключ HashMap. В частности, в методе getEventSpeed().Java NullPointerException в .containsKey

.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); 
    } 

} 

ответ

2

вы никогда не создать observationMap. Попробуйте это:

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

иначе вы получите NPE в обоих своих методах. Это зависит от метода, который вы называете первым.

+0

Hi Stefan, спасибо за быстрый ответ. Кажется очевидным сейчас. –

+0

@ Наташа Уитни рада помочь вам. не стесняйтесь принять мой ответ, щелкнув на белом крюке слева от моего ответа. –