【问题标题】:How do I create objects with enum types for fields如何为字段创建具有枚举类型的对象
【发布时间】: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(),因为这是一种方法

标签: java enums


【解决方案1】:

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

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

构造函数没有返回类型。

【讨论】:

    猜你喜欢
    • 2021-12-22
    • 2010-11-11
    • 2013-11-21
    • 2011-05-13
    • 2011-09-22
    • 2021-04-11
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多