我有一个使用可枚举数据类型的类。在它的构造函数中,它使用了其中的两个。当我尝试从另一个文件实例化此类的对象时,出现错误。
这里是从类的部分代码:当构造函数期望枚举时,如何实例化对象?
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