Почему не удается добавить объект в Map из его конструктора в Java? public class Quest {
static Map IDs;
String Text;
Quest(String Text, int ID){
this.Text = Text;
IDs.put(ID, this);
}
Программа выдает NullPointerException на строку IDs.put(ID, this);
Что я делаю не так?

21 Авг 2019 в 07:05
183 +1
0
Ответы
1

Проблема здесь заключается в том, что вы пытаетесь добавить объект в Map IDs до его инициализации. Вы объявили переменную IDs, но не проинициализировали ее, поэтому она по умолчанию равна null. Когда вы пытаетесь вызвать метод put() на null переменной, это приводит к NullPointerException.

Чтобы исправить это, вы можете проинициализировать Map IDs перед добавлением объектов в нее, например, в конструкторе класса Quest:

public class Quest {
static Map<Integer, Object> IDs = new HashMap<>();
String Text;
Quest(String Text, int ID){
this.Text = Text;
IDs.put(ID, this);
}
}

Теперь Map IDs будет проинициализирована и вы сможете успешно добавлять объекты в нее из конструктора.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир