#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; } ... }
Комментариев нет:
Отправить комментарий