我正在尝试创建一些 Card 对象并将其添加到包中。 Card 对象的花色和等级有枚举值,我真的在努力避免创建 52 个独特的对象——一次一个。我想通过遍历类的 Rank 枚举(Suits 也是一个枚举)来分配等级,如下所示:
for (Card.Ranks r: Card.Ranks.values())
{
theShoe.addItem(new Card(Card.Suits.Diamonds, Card.r.values()));
theShoe.addItem(new Card(Card.Suits.Hearts, Card.r.values()));
theShoe.addItem(new Card(Card.Suits.Spades, Card.r.values()));
theShoe.addItem(new Card(Card.Suits.Clubs, Card.r.values()));
}
Card 构造器如下所示:
public Card(Suits s, Ranks r)
{
suit = s;
rank = r;
}
但是肯定不行。 Eclipse 要求我在 Card 类中创建一个字段或常量“r”。 :/我还有另一种方法吗? 我试过删除每行末尾的“.values()”,但这也不起作用。如果有人能帮助我理解我做错了什么并且我能以某种方式解决它,我将不胜感激。谢谢!
最佳答案
根据您的构造函数,传递一个Suit
和一个Rank
。类似的东西,
for (Card.Ranks r : Card.Ranks.values()) {
for (Card.Suit s : Card.Suit.values()) { // <-- also loop over the Suits
theShoe.addItem(new Card(s, r));
}
}
或
for (Card.Suit s : Card.Suit.values()) {
for (Card.Ranks r : Card.Ranks.values()) {
theShoe.addItem(new Card(s, r));
}
}
关于java - 通过遍历枚举来分配参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35110144/