比方说,我有这些类:汽车,汽车和飞船:Java泛型通配符问题:列表<? extends 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是扩展Vehicle的任何X的List的超类型。对?
感谢
编辑:我得到的错误(编译时间):Add方法(?捕获#车辆2的延伸)在类型列表中是不适用的参数(车)。
可以共享编译错误?乍一看,这看起来应该工作... – 2011-03-31 04:42:35
@Mark Elliot:编辑我的问题,编译错误 – 2011-03-31 04:43:44