У меня есть класс A, а класс B расширяет A
В другом классе CI есть поле
private List<B> listB;
Теперь, по какой-то необычной причине, я должен реализовать этот метод вC
public List<A> getList();
Я попытался сделать это, принудительно увеличив поле списка 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
}
Я провел некоторый тест, и он, кажется, работает правильно, но, честно говоря, я не уверен во всех возможных последствиях.
Правильно ли это решение?И это лучшее решение?
Спасибо за ваши ответы.