Я знаю, что этот вопрос задан несколько раз, но я не нашел правильного ответа на вопрос. Как избежать исключения NullPointerException при получении результатов из ConcurrentHashMap. У меня есть код ниже, который бросает мне NullPointer.Избегайте исключения nullpointer с ConcurrentHashMap
public static String getPersonInfo(String personAddress) {
//if(concMap!=null && concMap.containsKey(personAddress))
return concMap.get(personAddress);
//return null;
}
В параллельной HashMap, я храню человек идентификатор и адрес в параллельном HashMap. В некоторых случаях идентификатор равен null. Хотя я делаю нулевую проверку перед помещением данных на карту, я все равно получаю следующую ошибку при попытке прочитать данные.
java.lang.NullPointerException
at java.util.concurrent.ConcurrentHashMap.get(Unknown Source)
Кто-то пожалуйста, помогите :(Я потратил более 3 часов, пытаясь отладки это. Хотя я вижу много сообщений в Интернете, я не очень понятно с тем, что можно сделать, чтобы избежать этого.
Я сделал нулевую проверку, как вы можете видеть в строках, которые прокомментированы. Это не помогло. – rickygrimes
Прочтите мой ответ еще раз - personAddress имеет значение null, вы проверяете concMap. Заметьте, что containsKey также будет бросать NPE, если вы вызываете его с помощью нулевого параметра. –
Нет, вы не сделали нулевой чек на personAddress ;-) – weiglt