我对Java编码很陌生,对堆栈交换也很陌生。我一直在尝试做这个汽车经销计划。尝试将汽车或自行车添加到车辆列表中时,我一直收到空指针错误,但我似乎无法弄清楚为什么,我几乎肯定是我把东西弄混了,放在错误的位置,但是我无法弄清楚哪去了。我使用一个驱动程序,一个Vehicles超类和Cars and Bikes作为两个继承自Vehicles的子类。抱歉,如果对任何内容不清楚,我们将不胜感激。谢谢!
public class BMWdriver {
ArrayList<Vehicles> list;
public void Driver() {
list = new ArrayList<Vehicles>();
}
public void inputCarDetails() {
Scanner scan = new Scanner(System.in);
String model, colour, fuelType, layout, frame, vehicleType;
int doors, stock, displacement, topSpeed, stroke, noSeats, noVehicles;
double price, fuelMpg;
boolean sunroof;
Vehicles car;
System.out.println("----Entering car details----");
System.out.println("\nEnter model");
model = scan.nextLine();
System.out.println("Enter Price");
price = scan.nextDouble();
scan.nextLine();
System.out.println("Enter colour");
colour = scan.nextLine();
System.out.println("Enter no. in stock");
stock = scan.nextInt();
System.out.println("Enter MPG");
fuelMpg = scan.nextDouble();
System.out.println("Enter displacement");
displacement = scan.nextInt();
System.out.println("Enter top speed");
topSpeed = scan.nextInt();
System.out.println("Enter no. of doors");
doors = scan.nextInt();
System.out.println("Enter fuel type");
fuelType = scan.nextLine();
System.out.println("Enter wheel layout");
layout = scan.nextLine();
System.out.println("Enter sunroof (true/false)");
sunroof = scan.nextBoolean();
car = new Cars(model, price, colour, stock, fuelMpg, displacement, topSpeed, doors, fuelType, layout, sunroof);
list.add(car);
}
public void inputBikeDetails() {
Scanner scan = new Scanner(System.in);
String model, colour, fuelType, layout, frame, vehicleType;
int doors, stock, displacement, topSpeed, stroke, noSeats, noVehicles;
double price, fuelMpg;
boolean sunroof;
Vehicles bike;
System.out.println("----Entering bike details----");
System.out.println("\nEnter model");
model = scan.nextLine();
System.out.println("Enter Price");
price = scan.nextDouble();
scan.nextLine();
System.out.println("Enter colour");
colour = scan.nextLine();
System.out.println("Enter no. in stock");
stock = scan.nextInt();
System.out.println("Enter MPG");
fuelMpg = scan.nextDouble();
System.out.println("Enter displacement");
displacement = scan.nextInt();
System.out.println("Enter top speed");
topSpeed = scan.nextInt();
System.out.println("Enter engine stroke");
stroke = scan.nextInt();
System.out.println("Enter no. of seats");
noSeats = scan.nextInt();
System.out.print("Enter the frame type");
frame = scan.nextLine();
bike = new Bikes(model, price, colour, stock, fuelMpg, displacement, topSpeed, stroke, noSeats, frame);
list.add(bike);
}
public static void main(String[] args) // main method
{
BMWdriver driver = new BMWdriver();
driver.startMenu();
driver.inputCarDetails();
driver.inputBikeDetails();
}
}
ArrayList<Vehicles> list;
您没有调用Driver方法来初始化arraylist
public static void main (String[] args) // main method
{
BMWdriver driver = new BMWdriver();
driver.Driver();
driver.startMenu();
driver.inputCarDetails();
driver.inputBikeDetails();
}
}
您正在尝试将尚未初始化的数据添加到您的列表中。您应确保在添加任何数据之前已对其进行了初始化。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句