Использование 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).

Ответы на вопрос(10)

Ваш ответ на вопрос