Java 泛型通配符问题:列表<?扩展 A>
假设我有这些类:车辆,汽车和宇宙飞船:
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是任何扩展车辆的X的List的超类型。右?
谢谢
编辑:我得到的错误(编译时):类型列表中的方法add(捕获#2-of?扩展车辆)不适用于参数(Car)。