Хочу задать константу, которая возвращает все элементы через сервис, но пишет, что она не инициализирована

private final GameService gameService;
private final List<Game> allGames = gameService.getAllGames();
@GetMapping("/")
  public String homePage(Model model) {
        model.addAttribute("allGames", allGames);
        return "index";
}

Выдает такую ошибку, что переменная сервиса не инициализирована! variable gameService might not have been initialized


Ответы (1 шт):

Автор решения: Klioda

Предположу, что gameService инициализирует Spring, а конструктор создаётся Lombok аннотацией @RequiredArgsConstructor (скажите, если это не так).

Инициализация полей вроде:

private final List<Game> allGames = gameService.getAllGames();

срабатывает раньше, чем код конструктора, а в этот момент gameService ещё не инициализирован.

Ну а если конструктора нет совсем, то его нужно создать. Однако, учтите при этом проблему инициализации выше.

→ Ссылка