Java.lang.NullPointerException: невозможно вызватьController.addFlight()", поскольку значение контроллера равно нулюJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Java.lang.NullPointerException: невозможно вызватьController.addFlight()", поскольку значение контроллера равно нулю

Сообщение Гость »


Я столкнулся с исключением нулевого указателя. Можете ли вы помочь мне объяснить, в чем проблема и что я делаю неправильно. Простите за грубое кодирование, я новичок.

Это ошибка:

Исключение в потоке «main» java.lang.NullPointerException: невозможно вызвать «com.org.Controller.Controller.addFlight()», потому что «com.org.App.controller» нулевой на com.org.App.main(App.java:22)

Это классы:

Приложение

пакет com.org; импортировать com.org.Config.AppConfig; импортировать com.org.Controller.Controller; импортировать org.springframework.beans.factory.annotation.Autowired; импортировать org.springframework.context.ApplicationContext; импортировать org.springframework.context.annotation.AnnotationConfigApplicationContext; импортировать java.util.Scanner; приложение общедоступного класса { @Autowired общедоступный статический контроллер контроллера; public static void main(String[] args) { System.out.println("Здравствуйте, добро пожаловать в авиакомпанию AirGO"); System.out.println("Пожалуйста, выберите, что вы хотите сделать"); System.out.println("1.Добавить рейс:"); System.out.println("2.Поиск рейса"); Сканер-сканер = новый сканер(System.in); Целочисленный userChoice= Scanner.nextInt(); если (1==Выбор пользователя){ контроллер.addFlight(); } else if (2==userChoice) { контроллер.showFlight(); } еще System.out.println("Пожалуйста, введите действительные данные"); } } Контроллер //Фальшивый класс контроллера

пакет com.org.Controller; импортировать com.org.Config.AppConfig; импортировать com.org.Domain.Flight; импортировать com.org.Service.FlightServiceImpl; импортировать org.springframework.beans.factory.annotation.Autowired; импортировать org.springframework.context.ApplicationContext; импортировать org.springframework.context.annotation.AnnotationConfigApplicationContext; импортировать org.springframework.stereotype.Component; импортировать java.time.LocalDate; @Компонент Контроллер публичного класса { @Autowired FlightServiceImpl FlightService = новый FlightServiceImpl (); общественная недействительность addFlight () { новый AnnotationConfigApplicationContext(AppConfig.class); Полет полет = новый полет (); Flight.setAirlines("Индиго"); Flight.setSource("Индия"); Flight.setDestination("Япония"); Flight.setFare(50456.54); LocalDate date = LocalDate.now(); Flight.setJourneyDate(дата); рейс.setSeatCount(2); FlightService.addFlight(полет); } общественная недействительность showFlight () { ApplicationContext applicationContext = новый AnnotationConfigApplicationContext(AppConfig.class); FlightServiceImpl FlightService = applicationContext.getBean(FlightServiceImpl.class); LocalDate date = LocalDate.now(); //не завершено } } Сервис

пакет com.org.Service; импортировать com.org.Domain.Flight; импортировать com.org.Repository.FlightRepository; импортировать org.springframework.beans.factory.annotation.Autowired; импортировать org.springframework.stereotype.Service; @Услуга публичный класс FlightServiceImpl реализует FlightService{ @Autowired FlightRepositoryImpl FlightRepository; @Override public void addFlight(Рейс) { пытаться{ FlightRepository.addFlight(полет); }catch (Исключение e){ System.out.println("Вставка рейса не удалась, Невозможно подключиться к базе данных...."); } } } КЛАСС КОНФИГУРАЦИИ

пакет com.org.Config; импортировать org.springframework.context.annotation.ComponentScan; импортировать org.springframework.context.annotation.Configuration; @Конфигурация @ComponentScan("com.org") публичный класс AppConfig { //Бины автоматически генерируются } КЛАСС ДОМЕНА

пакет com.org.Domain; импортировать java.time.LocalDate; общественный класс Flight { частная строка идентификатор полета; частные струнные авиакомпании; частный источник строки; частная строка назначения; частный двойной тариф; частная LocalDate поездкаDate; частное целое число SeaCount; общественный рейс() { } публичная строка getFlightId() { вернуть идентификатор рейса; } общественный недействительный setFlightId (String FlightId) { this.flightId = идентификатор полета; } общественная строка getAirlines() { обратные авиакомпании; } public void setAirlines(String Airlines) { this.airlines = авиакомпании; } публичная строка getSource() { источник возврата; } public void setSource (источник строки) { this.source = источник; } общественная строка getDestination() { обратный пункт назначения; } public void setDestination (назначение строки) { this.destination = пункт назначения; } общественный двойной getFare() { обратный тариф; } public void setFare(двойной тариф) { this.fare = тариф; } общественная LocalDate getJourneyDate() { Дата обратного пути; } public void setJourneyDate (LocalDate travelDate) { this.journeyDate = поездкаDate; } публичное целое число getSeatCount() { вернуть количество мест; } public void setSeatCount(Integer SeatCount) { this.seatCount = SeatCount; } @Override публичная строка toString() { вернуть "Полет {" + "flightId='" + FlightId + '\'' + ", авиакомпании='" + авиакомпании + '\'' + ", source="" + источник + '\'' + ", Пункт назначения='" + пункт назначения + '\'' + ", тариф=" + тариф + ", датапутешествия=" + датапутешествия + ", SeatCount=" + SeatCount + '}'; } } РЕПОЗИТАРИЕ
пакет com.org.Repository; импортировать com.org.Domain.Flight; импортировать org.springframework.stereotype.Repository; импортировать java.util.HashMap; импортировать java.util.Map; @Репозиторий публичный класс FlightRepositoryImpl реализует FlightRepository{ частный статический Integer FlightId = 1000; @Override public void addFlight(Рейс) { База данных Map = new HashMap(); идентификатор полета+=1; база данных.put(flightId,flight); System.out.println("Добавлены сведения о рейсе: "+ Flight.toString()); } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»