Пожалуйста, извините меня, если этот вопрос выглядит немым для обычного Java-программиста, но я застрял в этой проблеме. Я хочу назвать метод getPoliticCards()
из класса PoliticCard
в классе DrawCard(Player player)
. Сначала я использовал static arraylist
в PoliticCard
, поэтому у меня не было проблем, но мне пришлось изменить его, потому что я должен был одновременно запускать несколько сеансов игры.Java-вызов метода без создания экземпляра
public enum Color {
BLACK, PURPLE
}
public class Player {
private int id;
private ArrayList<Color> politicCards;
public Player(int id){
this.setId(id);
ArrayList<Color> array=new ArrayList<Color>();
setPoliticCards(array);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public ArrayList<Color> getPoliticCards() {
return politicCards;
}
public void setPoliticCards(ArrayList<Color> politicCards) {
this.politicCards = politicCards;
}
}
public class PoliticCard {
private ArrayList<Color> politicCards;
public PoliticCard(){
setPoliticCards(new ArrayList<Color>());
politicCards.add(Color.BLACK);
politicCards.add(Color.PURPLE);
}
public ArrayList<Color> getPoliticCards() {
return politicCards;
}
public void setPoliticCards(ArrayList<Color> politicCards) {
this.politicCards = politicCards;
}
}
public class DrawPoliticCard {
public DrawPoliticCard(Player player){
PoliticCard politicCard = new PoliticCard();//I know that to
//call a method from another class you should create an instance,
//but isn't *new PoliticCard();* creating a new arraylist in PoliticCard()?,
//what i want is to create the arraylist only once (like it's written in the test below)
//and then use the same updated arraylist each time i use this constructor
player.getPoliticCards().add(politicCard.getPoliticCards().get(0));
politicCard.getPoliticCards().remove(0);
}
}
public class ModelPlayerTest {
@Test
public void testDrawCard() {
Player player = new Player(1);
new PoliticCard();
new DrawPoliticCard(player);
assertNotNull(player.getPoliticCards().get(0));
}
}
так что вопрос? –
@PriyankaKotari Я хочу заменить 'new PoliticCard()' in 'PoliticCard politicCard = new PoliticCard();' поэтому он не создает нового arraylist каждый раз. – mpz