Использование prince get и put в подстановочном знаке Если подстановочный знак с Extends ---> Использование метода get Если подстановочный знак в Super ----> Использование метода put Здесь, вы хотите добавить значение в List (имеется в виду метод put). Вы можете изменить код
тим, у меня есть следующие классы: Транспортное средство, Автомобиль и Космический корабль:
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. правильно?
Спасибо
Edit: ошибка, которую я получаю (время компиляции): Метод add (capture # 2-of? Extends Vehicle) в списке List не применим для аргументов (Car).