[英]How to solve java.lang.NullPointerException
我在cars.add(car);
上收到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);
}
}
因為您尚未初始化private ArrayList<Car> cars
字段。 在構造函數中或在方法本身中懶惰地執行此操作。
private ArrayList<Car> cars = new ArrayList<Car>();
要么
public RentalCompany() {
this.cars = new ArrayList<Car>();
}
要么
public void addCar(String descriptionOfTheCar, int downPayment,
int dailyRate) {
this.cars = new ArrayList<Car>();
Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
cars.add(car);
}
我個人更喜歡構造函數方法。
或者你可以使用:
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);
}
假設它的一個線程訪問
你沒有啟動汽車。
private ArrayList<Car> cars = new ArrayList<Car>();
初始化列表:
private ArrayList<Car> cars = new ArrayList<Car>();
cars
尚未初始化。
嘗試將以下內容添加到您的構造函數中:
cars = new ArrayList<>();
在添加汽車之前。
最初cars == null
,所以初始化它如下:
private ArrayList<Car> cars = new ArrayList<Car>();
您的汽車未初始化,為空。 並且您嘗試將元素添加到此空數組列表中。
您可以在使用前對其進行初始化。
像
cars=new ArrayList<Car>();
Car car = new Car(descriptionOfTheCar, downPayment, dailyRate);
cars.add(car);
看起來你沒有初始化你的汽車 ArrayList。
在沒有看到調用 addCar() 的任何細節的情況下,我不能肯定地說,但兩個最明顯的可能性是 String 尚未初始化或 ArrayList 尚未初始化。
我假設您的大部分代碼已被省略,但從這個示例中,您似乎還沒有初始化ArrayList
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.