Java Generics WildCard Pregunta: Lista <? extiende A>
Digamos que tengo estas clases: Vehículo, automóvil y nave espacial:
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!");
}
}
y escribo este método addCars:
private static void addCars(List<? extends Vehicle> vcls){
vcls.add(new Car());
vcls.add(new Car());
vcls.add(new Car());
}
¿Por qué recibo un error de tiempo de compilación? Entiendo que List es un supertipo de List para cualquier X que extienda el Vehículo. ¿Derecha
Gracia
Edit: el error que obtengo (tiempo de compilación): el método add (capture # 2-of? Extend Vehicle) en el tipo List no es aplicable para los argumentos (Car).