Изменить конкретный экземпляр объекта

1

Скажем, я позволяю игрокам создавать команды, и создание команды вызывает новый экземпляр командного класса, который имеет список массивов, называемый членами.

Теперь в основном классе, как добавить игрока в команду после приглашения? У меня есть метод addPlayer в командном классе, который просто добавляет их в arraylist, но что, если в настоящее время есть несколько экземпляров класса команд (другие игроки создали команды), как он узнает, к кому присоединиться?

У меня есть переменная в классе Teams для teamLeader, которая устанавливается при создании экземпляра, если это может помочь мне отредактировать определенный экземпляр.

Team team = new Team(this, leader);

Любая помощь

  • 3
    Можете ли вы опубликовать исходный код из класса Team и часть, как вы это называли?
Теги:

2 ответа

1

Вам нужен идентификатор, чтобы однозначно различать каждую команду, и вы можете использовать этот идентификатор для хранения команд на Map. Что-то вроде этого:

Map<String,Team> teamMap = new HashMap<String,Team>();

Выберите тип ключа согласно вашему требованию, я выбрал String для примера

  • 0
    Да, я думал, что мне понадобится какой-то уникальный идентификатор для каждой команды, поэтому я подумал, что переменная teamLeader является идентификатором команды, я просто не знаю, как добавить команду на основе лидера команды, например. Добавить игрока в уже созданный экземпляр Team, где teamLeader = someplayer
0

Согласно вашему дизайну, после создания необходимо сохранить все команды в списке.

ArrayList teamsList=new ArrayList ();
Team team = new Team(this, leader);
teamsList.add(team);

Затем сверните все команды в методе addPlayer, а затем сравните лидера, а затем добавьте к нему игрока. Что-то вроде этого -

public void addPlayer (Player player,String leader){

for(int i=0; i<teamListSize;i++)

    Team tempTeam=teamsList.get(i);

    if(tempTeam.getLeader().equalsIgnoreCase(leader)){

        tempTeam.add(player);
        break;
    }

}
  • 0
    Выглядит хорошо, я попробую это, я думал о сохранении всех команд при их создании и их циклировании, но я не был уверен, сможете ли вы зациклить все текущие экземпляры объекта
  • 0
    Таким образом, массив teamList не должен быть в классе Team, но вы обращаетесь к нему из appPlayer, который находится в классе Team? Я создаю экземпляр в моем основном классе
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню