Скажем, у меня есть эти классы: автомобиль, автомобиль и космический корабль:
class Vehicle{
void rideVehicle(Vehicle v){
System.out.println("I am riding a vehicle!");
}
}
class Car extends Vehicle{
void rideVehicle(Vehicle c){
System.out.println("I am riding a car!");
}
}
class SpaceShip extends Vehicle{
void rideVehicle(Vehicle c){
System.out.println("I am riding a spaceship!");
}
}
и я пишу этот метод addCars:
private static void addCars(List<? extends Vehicle> vcls){
vcls.add(new Car());
vcls.add(new Car());
vcls.add(new Car());
}
Почему я получаю ошибку времени компиляции?? Я понимаю, что List является супертипом List для любого X, который расширяет Vehicle. не так ли?
Спасибо
Изменить: ошибка, которую я получаю (время компиляции): метод add (capture # 2-of? extends Vehicle) в типе List не применим для аргументов (Car).