Я прочитал эту статью http://www.javapractices.com/topic/TopicAction.do?Id=31,, в которой говорится, что использование instanceof для проверки того, что мой объект заранее, является плохой практикой.
Но я не знаю, как это сделать иначе в этомcase: у меня есть API, который возвращает список элементов.Этот список элементов возвращает как пользователей, так и администраторов
Если я разыграю элемент, подобный элементу (пользователю), я получу исключение ClassCastException, как только оно достигнет администратора
for(Item item : items){
if (item instanceof User){
((User)item).getName());
((User)item).getEmail());
}
else if (item instanceof Admin){
((Admin)item).getName());
((Admin)item).getEmailList().getPrimary());
}
}
.это API, который я не могу изменить Item, Item не имеет методов для дочерних элементов, а метод извлечения электронной почты отличается.У меня есть другой выбор?