我有一個使用可枚舉數據類型的類。在它的構造函數中,它使用了其中的兩個。當我嘗試從另一個文件實例化此類的對象時,出現錯誤。
這裏是從類的部分代碼:當構造函數期望枚舉時,如何實例化對象?
public class Card {
public static enum colorType {BLACK, RED};
public static enum suitType {CLUB, DIAMOND, HEART, SPADE };
public static enum rankType {ACE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT,
NINE, TEN, JACK, QUEEN, KING };
private boolean faceup = false;
private rankType rank;
private suitType suit;
//*************************************************************
//Card- constructor. initializes a card and makes it face down
//*************************************************************
public void Card(rankType r, suitType s){
this.rank = r;
this.suit = s;
this.faceup = false;
}
當我嘗試這樣做:
Card C1 = new Card(ACE,SPADE);
從另一個文件,我得到一個錯誤。使用rankType.ACE和suitType.SPADE作爲參數也會給出相同的錯誤。我可以做卡C1 =新卡();沒有任何錯誤,但是會創建一張沒有任何內容的卡片。我得到的確切錯誤是:
internal error; cannot instantiate Card.<init> at Card to()
很明顯,在這種情況下使用枚舉值有一些技巧。我究竟做錯了什麼?
固定。我的問題的解決方案是來自uthomas,Tieson T.的帖子和公認的答案。
「enumerable」!=「enumeration」。 Java中很少使用「enumerable」這個詞,但它通常用於表示「可迭代」之類的東西。 – 2011-04-07 05:25:54