我有一个使用可枚举数据类型的类。在它的构造函数中,它使用了其中的两个。当我尝试从另一个文件实例化此类的对象时,出现错误。
以下是该类的部分代码:
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 作为参数也会给出相同的错误。我可以做 Card C1 = new Card();没有错误,但这会创建一张没有任何内容的卡片。我收到的确切错误是:
internal error; cannot instantiate Card.<init> at Card to ()
显然在这种情况下使用枚举有一些技巧。我做错了什么?
固定的。我的问题的解决方案位于 uthomas、Tieson T. 的帖子和已接受的答案中。
最佳答案
尝试从构造函数中删除 void
关键字。
关于java - 当对象的构造函数需要枚举时,如何实例化对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5576330/