2017-10-29 6 views
0

私は学校向けのゲームプログラムを作っています。私はコンパイルするときフィールドの列挙型を持つオブジェクトを作成するにはどうすればいいですか

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; 
} 

が、私はエラー占いを取得する:私は4つのenum型の組み合わせごとにカードを作るデッキコンストラクタを作成しようとしています

public SetCard(Colors c, Shapes sp, Shading sd, Numbers num) 
    { 
    this.color = c; 
    this.shape = sp; 
    this.shade = sd; 
    this.number = num; 
    } 

:私は、カードの次のコンストラクタを持っています私の "コンストラクタSetCardクラスのSetCardは与えられた型には適用できません"

私のSetCardコンストラクタは引数の列挙型を取りますので、なぜこのようなことが起こっているのか分かりません。

+0

これはコンストラクタではなく、メソッドです。単語の空白を削除して、それが動作する可能性があります –

+0

'SetCard'メソッドから' void'を削除してコンストラクタにする必要がありますか? –

+1

あなたは*質問*からそれを編集したくないかもしれません - あなたの質問は理にかなっていません。 (変更しても同じエラーが発生している場合を除きます) –

答えて

1

それはこのようになりますように、あなたのコンストラクタからvoidキーワードを削除してください:

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

コンストラクタは戻り値の型を持っていません。

関連する問題