Я получаю исключение NullPointerException при добавлении данных в HashMap. Я пишу класс для подсчета заданных частот определенных объектов. Вот мой код (лишенный лишних деталей):
public class FrequencyCounter {
private Map<Object, Integer> freq;
public FrequencyCounter() {
freq = new HashMap<Object, Integer>();
}
public int add(Object key) {
System.out.println("Map is null: " + (freq == null));
System.out.println("Key is null: " + (key == null));
if (freq.containsKey(key)) {
return freq.put(key, freq.get(key) + 1);
}
return freq.put(key, 1);
}
public static void main(String[] args) {
FrequencyCounter fc = new FrequencyCounter();
fc.add(new Object());
}
}
NPE происходит на линии return freq.put(key, 1);
Оба оператора println печатают false.
Кто-нибудь из вас знает, что я могу делать неправильно?