Дано:
interface ViewableDTO {//methods here}
class PersonDTO implements ViewableDTO {//implementation here}
Это отлично работает:
PersonDTO p = new PersonDTO();
ViewableDTO v = p; //works
Почему это не работает:
List<PersonDTO> plist = getPersonDtoList();
List<ViewableDTO> vlist = plist; //compilation error
List<ViewableDTO> vlist = (List<ViewableDTO>)plist; //compilation error
Мое решение здесь заключается в следующем:
List<ViewableDTO> vlist = new ArrayList<ViewableDTO>();
vlist.addAll(plist);
У меня вопрос, это единственный / лучший способ сделать это?