Null Exception при попытки модификации обьекта класса Java

При попытке модификации полей класса выдает Null Exception. Собственно код. Ошибку выдает при вызове метода Create

Основной класс

    public class Dealership implements CRUD {
     private Car car;
     private List<Car> cars = new ArrayList<>();
     public Dealership() {}
     @Override
     public void Create() {
     this.cars.add(car.Modify(car));

     }
     @Override
    public void GetById(int id) {
    for(int i=0;i<this.cars.size();i++) {
        if(cars.get(i).getId()==id) {
            System.out.println(
                    "Id: "+cars.get(i).getId()+" Model: "+cars.get(i).getModel()+
                    " Dealer: "+cars.get(i).getDealer()+"Speed: "+cars.get(i).getSpeed()+"\n");     }
        }
     }
    @Override
    public void  GetByModel(String model) {
        for(int i=0;i<this.cars.size();i++) {
            if(cars.get(i).getModel()==model) {
                System.out.println(
                        "Id: "+cars.get(i).getId()+" Model: "+cars.get(i).getModel()+
                        " Dealer: "+cars.get(i).getDealer()+"Speed: "+cars.get(i).getSpeed()+"\n");
            }
        }
       }
      @Override
     public void  GetByDealer(String dealer) {

        for(int i=0;i<this.cars.size();i++) {
            if(cars.get(i).getDealer()==dealer) {
                System.out.println(
                        "Id: "+cars.get(i).getId()+" Model: "+cars.get(i).getModel()+
                        " Dealer: "+cars.get(i).getDealer()+"Speed: "+cars.get(i).getSpeed()+"\n"); 
            }
         }


          }
               @Override
      public void  GetByMaxSpeedLimit(double speed) {
        for(int i=0;i<this.cars.size();i++) {
            if(cars.get(i).getSpeed()>speed) {
                System.out.println(
                        "Id: "+cars.get(i).getId()+" Model: "+cars.get(i).getModel()+
                        " Dealer: "+cars.get(i).getDealer()+"Speed: "+cars.get(i).getSpeed()+"\n");          }
        }
    }

   }

Наследник:

    public class Car extends Dealership implements CCRUD{
    private int id;
    private String model;
    private String dealer;
    private double speed;

    public Car() {
        this.id = 0;
        this.model = "None";
        this.dealer = "None";
        this.speed = 0;
    }
    @Override
    public Car Modify(Car c) {
    Scanner in = new Scanner(System.in);
    id = in.nextInt();  
    model = in.nextLine();
    dealer = in.nextLine();
    speed = in.nextDouble();

    in.close();
    return c;
    }
    @Override
    public int getId() {
        return this.id;
    }
    @Override
    public String getModel() {
        return this.model;
    }
    @Override
    public String getDealer() {
        return this.dealer;
    }
    @Override
    public double getSpeed() {
        return this.speed;
    }

}

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

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

В методе Create() вы вызываете метод this.cars.add(car.Modify(car));. В car.Modify(car) вы пытаетесь передать ссылку, определенную выше private Car car;.

NPE возникает, потому что private Car car; не содержит ссылки на объект, вы передаете пустую ссылку. Нужно создать экземпляр объекта и присвоить его этой ссылке, например через оператор new.

→ Ссылка