尝试创建方法,接受“数字”然后使用该数字,它会进入全局arraylist <string>
并将位置“数字”的图标更改为某个图标使用一系列if-else语句。
问题是我不知道如何拨打该位置。
没有方法,我会像这样编码;
card1.seticon(a);
我会手动为所有if-else语句和arraylist
中的所有项目执行此操作。
如何让它变得动态,以便'card'之后的数字在同一方法中不断变化?
到目前为止,这是我的方法&amp;我想用变量或动态的东西替换那些: 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;
}
}
答案 0 :(得分:1)
为您的所有实例创建一个继承树。
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
如您所见,通过此过程,您可以创建和添加任何子类,而不必修改以前创建的类。
答案 1 :(得分:0)
构建Map<String, Icon>
,密钥为"0", "1"..."7", "whatever"
,值为icon a, b, c...h..anyIcon
然后你只需card1.setIcon(map.get(cards.get(cardNumber)))
(上述行中省略了验证。)