我有一个Vehicle超类,然后我有一些子类。我正在尝试使用一个数组列表,将所有子类中的对象添加到同一个列表中,但我很快就会出现。
我目前在我的程序类中有列表,但我已将它移动了一点。
这是我在Program中的代码:
ArrayList<Vehicles> Inventorie = new ArrayList<>();
public void setInventorie(Car newCar) {
Inventorie.add(newCar);
}
这是我在Car中的代码:
public void addCar(){
System.out.println("Make: ");
Make = scan.nextLine();
System.out.println("RegNr");
regNr = scan.nextInt();
System.out.println("Year");
year = scan.nextInt();
setValue();
Car c1 = new Car(make, regNr, Year);
Program.setInventorie(c1);
}
在Car中我得到了&#34;非静态方法&#39; setInventorie(Project1.Vehicles)&#39;无法从静态上下文中引用。&#34;
我还必须注释掉main方法,否则编译器无法解析符号Inventorie(数组列表名称)。
试图尽我所能解释我的问题,希望有人可以提供帮助。 是的,我是新手,所以它看起来真的很愚蠢,但它是我能做的最好的。
由于
答案 0 :(得分:0)
我猜这是行Program.setInventorie(c1);
。您需要创建Program
类的实例并在其上调用setInventorie()
。 setInventorie()
不是静态方法。
e.g:
Program myProgram = new Program();
myProgram.setInventorie(c1);