[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-servlety-pochemu-neobkhodimo-pereopredelit-tolko-init-metod-bez-argumentov":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},521,"pochemu-neobkhodimo-pereopredelit-tolko-init-metod-bez-argumentov",13,"servlety","Сервлеты","🖧","Почему необходимо переопределить только init() метод без аргументов","Метод `init()` без аргументов следует переопределять вместо `init(ServletConfig config)`, чтобы избежать ошибки с пропущенным вызовом `super.init(config)`. Класс `GenericServlet` вызывает `init()` без аргументов в конце метода `init(ServletConfig config)` — это паттерн Template Method.\n\nЕсли переопределить `init(ServletConfig config)` и забыть вызвать `super.init(config)`, объект `ServletConfig` не будет сохранён, и последующие вызовы `getServletConfig()` вернут `null`. Это приведёт к `NullPointerException` в runtime. Переопределение безаргументного `init()` гарантирует, что `GenericServlet` корректно сохранит `ServletConfig` до вызова пользовательского кода инициализации.\n\n```java\n\u002F\u002F Правильно: переопределяем init() без аргументов\n@Override\npublic void init() throws ServletException {\n    \u002F\u002F инициализация данных\n}\n```\n\n> **На собеседовании:** вопрос проверяет понимание паттерна Template Method и двухфазной инициализации в Servlet API. Частая ошибка — путать `init()` и `init(ServletConfig)`.","","junior",[15],"servlets",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":21,"keywords":22,"schemaAnswer":23,"featuredSnippetReady":24},"Почему необходимо переопределить только init() метод без арг — Gymterview","Метод `init()` без аргументов следует переопределять вместо `init(ServletConfig config)`, чтобы избежать ошибки с пропущенным вызовом `super.init(config)`. Клас","Метод `init()` без аргументов следует переопределять вместо `init(ServletConfig config)`, чтобы избежать ошибки с пропущ",[15,13],"Метод `init()` без аргументов следует переопределять вместо `init(ServletConfig config)`, чтобы избежать ошибки с пропущенным вызовом `super.init(config)`. Класс `GenericServlet` вызывает `init()` без аргументов в конце метода `init(ServletConfig config)` — это паттерн Template Method.",true]