Java 如何为字段创建枚举类型的对象

Java 如何为字段创建枚举类型的对象,java,enums,Java,Enums,我正在为学校制作一套游戏程序。我有以下卡的构造函数: public SetCard(Colors c, Shapes sp, Shading sd, Numbers num) { this.color = c; this.shape = sp; this.shade = sd; this.number = num; } 我正在尝试创建一个组构造函数,该构造函数使用四种枚举类型的每种组合生成卡: public setDeck() { A

我正在为学校制作一套游戏程序。我有以下卡的构造函数:

  public SetCard(Colors c, Shapes sp, Shading sd, Numbers num)
  {
     this.color = c;
     this.shape = sp;
     this.shade = sd;
     this.number = num;
  }
我正在尝试创建一个组构造函数,该构造函数使用四种枚举类型的每种组合生成卡:

public setDeck()
{  
  ArrayList<Card> cards = new ArrayList<Card>(CARDS_IN_DECK);

  for (Colors c : Colors.values()) {
     for (Shapes sp : Shapes.values()) {
        for (Shading sd : Shading.values()) {
           for (Numbers num : Numbers.values()) {
           cards.add(new SetCard(c, sp, sd, num));
           }
        }   
     }  
  }
return cards;
}
public setDeck()
{  
ArrayList卡片=新的ArrayList(卡片组中的卡片);
对于(颜色c:Colors.values()){
对于(形状sp:Shapes.values()){
对于(着色sd:Shading.values()){
对于(Numbers num:Numbers.values()){
添加(新设置卡(c、sp、sd、num));
}
}   
}  
}
回程卡;
}
当我编译时,我得到一个错误,告诉我“SetCard类中的构造函数SetCard不能应用于给定的类型”


我的SetCard构造函数接受参数的枚举类型,因此我不明白为什么会发生这种情况。

尝试从构造函数中删除
void
关键字,使其看起来像这样:

 public SetCard(Colors c, Shapes sp, Shading sd, Numbers num)

构造函数没有返回类型。

那不是构造函数,而是方法。删除void这个词可能会让人觉得应该从方法
SetCard
中删除
void
,使其成为构造函数?您可能不想编辑它,但现在您的问题没有意义了。(除非在进行此更改后仍然出现相同的错误。)您还需要将
void
重新设置为
setDeck()
,因为这是一种方法