比方說,我有這些類:汽車,汽車和飛船: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