У меня есть класс A, а класс B расширяет A
В другом классе C у меня есть поле
private List<B> listB;
Теперь по какой-то необычной причине я должен реализовать этот метод в C
public List<A> getList();
Я попытался сделать это, запустив uplist из поля listB в List <A>
с помощью List <?>
cast:
public List<A> getList(){
return (List<A>)(List<?>)listB;
}
Клиенты должны делать
List<A> list = getList();
for(A a:list){
//do something with a
}
Я сделал несколько тестов и, похоже, работает правильно, но, честно говоря, я не уверен в возможных последствиях.
Правильно ли это решение? И это лучшее решение?
Спасибо за ваши ответы.