如何解决java.lang.NullPointerException

时间:2012-01-13 13:09:47

标签: java

我在java.lang.NullPointerException行上获得cars.add(car);并且我真的不确定如何解决它,我已经阅读了一些与此错误相关的其他线程,但答案仍然似乎有没有我。

public class RentalCompany {

    private ArrayList<Car> cars;
    private String description;
    private int carDownPayment;
    private int rate;
    private int carNumber;

    public void addCar(String descriptionOfTheCar, int downPayment,
        int dailyRate) {
        Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
        cars.add(car);
    }
}

如果有人可以提供任何建议,我将非常感激,提前谢谢。

10 个答案:

答案 0 :(得分:7)

因为您尚未初始化private ArrayList<Car> cars字段。懒惰,构造函数或方法本身。

private ArrayList<Car> cars = new ArrayList<Car>();

OR

public RentalCompany() {
    this.cars = new ArrayList<Car>();
}

OR

public void addCar(String descriptionOfTheCar, int downPayment,
    int dailyRate) {
    this.cars = new ArrayList<Car>();
    Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
    cars.add(car);
}

我个人更喜欢构造函数方法。

答案 1 :(得分:5)

或者您可以使用:

    public void addCar(String descriptionOfTheCar, int downPayment, int dailyRate)
        {
            if (cars == null)
                cars = new ArrayList<>();

            Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
            cars.add(car);
        }

假设其一个线程访问

答案 2 :(得分:3)

你没有开车。

private ArrayList<Car> cars = new ArrayList<Car>();

答案 3 :(得分:2)

初始列表:

private ArrayList<Car> cars = new ArrayList<Car>();

答案 4 :(得分:0)

cars尚未初始化。

尝试将以下内容添加到构造函数中:

cars = new ArrayList<>();

在向其添加汽车之前。

答案 5 :(得分:0)

最初为cars == null,因此请将其初始化为:

 private ArrayList<Car> cars = new ArrayList<Car>();

答案 6 :(得分:0)

你的汽车没有初始化,这是空的。并且您尝试将Elements添加到此null arraylist。

你可以在使用前初始化它。

cars=new ArrayList<Car>();
Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
cars.add(car);

答案 7 :(得分:0)

看起来你没有初始化你的汽车ArrayList。

答案 8 :(得分:0)

没有看到调用addCar()的任何细节,我不能肯定地说,但两个最明显的可能性是String尚未初始化或者ArrayList尚未初始化。

答案 9 :(得分:0)

我假设您的大部分代码已被省略,但从此示例中您似乎尚未初始化ArrayList