2014-12-13 2 views
0

Давайте предположим, что у меня есть 2 класса транспортных средств и автомобилиКак реализовать метод из производного класса, который не требует отбрасываемой

public class Vehicle { 
    public List<? extends Vehicle> getList() { 
     return new ArrayList<Vehicle>(); 
    } 
} 

@Override 
public class Car extends Vehicle { 
    public List<? extends Vehicle> getList() { 
     return new ArrayList<Car>(); 
    } 
} 

Если я хочу, чтобы получить список из класса, который черпает Vehicle есть способ Я могу использовать getList() без использования?

Это не работает (и я понимаю, почему:

List<Car> list = new Car().getList(); 

И это делает:

List<Car> list = (List<Car>)new Car().getList(); 

Есть ли способ, чтобы предотвратить это

ответ

1

Изменение getList() метод класс Car для возврата List<Car>.

@Override 
public List<Car> getList() { 
    return new ArrayList<Car>(); 
} 
0

@Marv правильно, и вы можете изменить назначение также, как показано ниже

List<? extends Vehicle> list = new Car().getList(); 
Смежные вопросы