尝试创建一个接受“数字”的方法,然后使用该数字,它会进入全局 arraylist <string>
并使用一系列 if-else 语句将位置“number”的图标更改为某个图标。
问题是我不知道如何调用该位置。
如果没有方法,我会这样编码;
card1.seticon(a);
我会手动为所有 if-else 语句以及 arraylist
中的所有项目执行此操作。 .
如何使其动态化,以便“卡”后面的数字以相同的方法不断变化?
这是我到目前为止的方法,我想用变量或动态的东西替换这些方法:
public void setCards(int cardNumber) {
String temp = cards.get(cardNumber);
switch (temp) {
case "0":
card1.setIcon(a);
break;
case "1":
Card1.setIcon(b);
break;
case "2":
Card1.setIcon(c);
break;
case "3":
Card1.setIcon(d);
break;
case "4":
Card1.setIcon(e);
break;
case "5":
Card1.setIcon(f);
break;
case "6":
Card1.setIcon(g);
break;
case "7":
Card1.setIcon(h);
break;
}
}
最佳答案
为所有实例创建继承树。
abstract class Card {
protected String icon;
public Card(String icon) {
this.icon = icon;
}
public String getIcon() {
return this.icon;
}
}
这是子类的示例:
class CardA extends Card {
public CardA() {
super("Icon A");
}
}
对你的所有卡片做类似的事情。之后您可以执行以下操作:
List<Card> cardList = new ArrayList<Card>();
cardList.add(new CardA());
cardList.add(new CardB());
假设你想迭代它:
for(Card card : cardList) {
System.out.println(card.getIcon());
}
这将打印:
Icon A
Icon B
如您所见,通过此过程,您可以创建和添加任何子类,而不必修改以前创建的类。
关于java - 配对游戏-setCard方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26060471/