如何解决java.lang.NullPointerException
我在如何解决java.lang.NullPointerException,java,Java,我在cars.add(car)上得到java.lang.NullPointerException行,我真的不确定如何解决它,我已经阅读了一些与此错误相关的其他线程,但答案似乎仍然没有找到 公共级租赁公司{ 私家车; 私有字符串描述; 私人信用卡支付; 私人利率; 私有整数卡号; public void addCar(该车的字符串描述,整数首付, int dailyRate){ 汽车=新车(描述汽车、首付款、日租期); cars.add(car); } } 初始列表: private ArrayL
cars.add(car)上得到java.lang.NullPointerException
代码>行,我真的不确定如何解决它,我已经阅读了一些与此错误相关的其他线程,但答案似乎仍然没有找到
公共级租赁公司{
私家车;
私有字符串描述;
私人信用卡支付;
私人利率;
私有整数卡号;
public void addCar(该车的字符串描述,整数首付,
int dailyRate){
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
}
}
初始列表:
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
初始列表:
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
车辆
尚未初始化
尝试将以下内容添加到构造函数中:
cars = new ArrayList<>();
cars=newarraylist();
在添加汽车之前。汽车
尚未初始化
尝试将以下内容添加到构造函数中:
cars = new ArrayList<>();
cars=newarraylist();
在向其添加汽车之前。首先cars==null
,因此按如下方式初始化它:
private ArrayList cars=new ArrayList();
最初cars==null
,因此按如下方式初始化它:
private ArrayList cars=new ArrayList();
您的汽车未初始化,为空。您试图将元素添加到此空arraylist
您可以在使用之前对其进行初始化
像
cars=newarraylist();
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
您的汽车未初始化,为空。您试图将元素添加到此空arraylist
您可以在使用之前对其进行初始化
像
cars=newarraylist();
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
看起来您没有初始化您的cars ArrayList。看起来您没有初始化您的cars ArrayList。没有看到调用addCar()的任何细节,我不能确定,但最明显的两种可能性是字符串没有初始化或ArrayList没有初始化 在没有看到调用addCar()的任何细节的情况下,我无法确定,但最明显的两种可能性是字符串未初始化或ArrayList未初始化 我假设您的大部分代码都被省略了,但是从这个示例来看,您似乎还没有初始化ArrayList
我假设您的大部分代码都被省略了,但是从这个示例来看,您似乎还没有初始化ArrayList
,或者您可以使用:
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);
}
public void addCar(对car、int首付、int dailrate的字符串描述)
{
if(cars==null)
cars=新阵列列表();
汽车=新车(描述汽车、首付款、日租期);
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);
}
public void addCar(对car、int首付、int dailrate的字符串描述)
{
if(cars==null)
cars=新阵列列表();
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
}
假设它是单线程访问,因为您尚未初始化private ArrayList cars
字段。要么在构造函数中,要么在方法本身中惰性地执行
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
或
公共租赁公司(){
this.cars=new ArrayList();
}
或
public void addCar(车的字符串描述,整数首付,
int dailyRate){
this.cars=new ArrayList();
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
}
我个人更喜欢构造函数方法 因为您尚未初始化private ArrayList cars
字段。要么在构造函数中,要么在方法本身中惰性地执行
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
或
公共租赁公司(){
this.cars=new ArrayList();
}
或
public void addCar(车的字符串描述,整数首付,
int dailyRate){
this.cars=new ArrayList();
汽车=新车(描述汽车、首付款、日租期);
cars.add(car);
}
我个人更喜欢构造函数方法 你没有发动汽车
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
您没有启动汽车
private ArrayList<Car> cars = new ArrayList<Car>();
private ArrayList cars=new ArrayList();
哦,我知道一个句子不能以“因为”开头,嗯。。。每次调用addCar
函数时,选项3都会使用新的ArrayList覆盖this.cars
。this.cars
的内容将在每次addCar
调用时被删除,cars
将不会包含多个元素。哦,我知道一个句子不能以“因为”开头。。。每次调用addCar
函数时,选项3都会使用新的ArrayList覆盖this.cars
。this.cars
的内容将在每次调用addCar
时删除,并且cars
将永远不会包含多个元素。