Почему не удается добавить объект в 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); Что я делаю не так?
Проблема здесь заключается в том, что вы пытаетесь добавить объект в 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 будет проинициализирована и вы сможете успешно добавлять объекты в нее из конструктора.
Проблема здесь заключается в том, что вы пытаетесь добавить объект в 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 будет проинициализирована и вы сможете успешно добавлять объекты в нее из конструктора.