【发布时间】:2017-10-29 20:57:47
【问题描述】:
我正在为学校制定一套游戏计划。我有以下卡片构造函数:
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;
}
当我编译时,我收到一条错误消息,告诉我“SetCard 类中的构造函数 SetCard 不能应用于给定类型”
我的 SetCard 构造函数接受枚举类型作为参数,所以我不明白为什么会这样。
【问题讨论】:
-
那不是构造函数,而是方法。去掉 void 这个词,它可能会起作用
-
看来您应该从方法
SetCard中删除void以使其成为构造函数? -
您可能不想从 question 中编辑它 - 现在您的问题毫无意义。 (除非您在进行此更改后仍然遇到相同的错误。)
-
您还需要将
void放回setDeck(),因为这是一种方法