#java #коллекции
Всем привет ! Каким образом можно вытащить класс из коллекции (на примере) Имеется абстрактный класс Игрок: public Player(String firstName, String lastName, int age) { this.firstName = firstName; this.lastName = lastName; this.age = age; } Имеется класс Вратарь public GoalKeeper(String firstName, String lastName, int age, int handling, int aerialAbility) { super(firstName, lastName, age); this.handling = handling; this.aerialAbility = aerialAbility; } Позже я создаю объект и помещаю его в коллекцию типа Игрок (абстрактный класс) players = new ArrayList(); players.add(new GoalKeeper("Олег", "Газманов", 11, 44, 35)); Каким образом я могу из этой коллекции вытащить данные класса Вратарь ? Спасибо !
Ответы
Ответ 1
Необходимо проверить и привести тип: Player player = players.get(0); //или другой индекс if (player instanceof GoalKeeper) { GoalKeeper goalKeeper = (GoalKeeper) player; //... }Ответ 2
Можно использовать instanceof, но, на мой взгляд, лучше добавить перечисление с возможными позициями игроков: enum Position { GK, DC, FW // etc } abstract class Player { abstract Position getPosition(); ... } class GoalKeeper { @Override Position getPosition() { return Position.GK; } ... }
Комментариев нет:
Отправить комментарий