java - 通过遍历枚举来分配参数

标签 java for-loop enums iteration bag

我正在尝试创建一些 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/

相关文章:

java - 根据用户输入将 ArrayList 拆分为多个 ArrayList

java - 如何检测对 JTable 行边界的点击?

javascript - 制作一个函数,从可被 3 整除的数组中提取所有数字

java - 最终字段而不是枚举中的访问器

sql - Hibernate SQL 转换对于 Enum 字段类型失败

java - 将字符添加到 BufferedReader

java - Pojo 到 xsd 代

javascript - 如何迭代 jQuery 对象并等待事件?

javascript - 循环数组并返回与前 2 个值匹配的子数组的最佳方法

java - 何时在 Java 中使用 Enum 或 Collection