java - 当对象的构造函数需要枚举时,如何实例化对象?

标签 java

我有一个使用可枚举数据类型的类。在它的构造函数中,它使用了其中的两个。当我尝试从另一个文件实例化此类的对象时,出现错误。
以下是该类的部分代码:

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/

相关文章:

java - Weblogic 中的 EJB 拦截器

java - 如何调整 JFrame 的大小,以便组件也根据用户的大小扩大或缩小?

java - Proguard 是否会删除仅在一处使用的方法? [方法内联]

java - 如何在完成另一个线程后停止一个线程?

java - 是否可以编写一个新的 "phone" Activity ,如果可以,那么如何编写?

java - 如何从源代码中找出具体的jsp技术?

java - 使用 HSQLDB 测试日期值

java - 每次应用程序重新启动时都会重新创建 SQLite 数据库表

java - 服务器与所有在线客户端/连接的 Netty 聊天

java - 添加到 JTable 单元格中的 JCheckBox 不可见