Java枚举发出错误?

时间:2012-01-12 13:17:32

标签: java enums

当我尝试给我的枚举值时,它给了我这个错误:

枚举状态中的

构造函数状态不能应用于给定类型; STATUS_OPEN(0),

为什么会发生这种情况,我该如何解决?

到目前为止,这是我的代码:

 public enum Status 
 { 
     STATUS_OPEN(0),  
     STATUS_STARTED(1),  
     STATUS_INPROGRESS(2),  
     STATUS_ONHOLD(3),  
     STATUS_COMPLETED(4),  
     STATUS_CLOSED(5);  

 }

我正在使用记事本和JDK通过命令提示符 - 我现在不想使用netbeans或eclipse。

我关注此网站:link

我已经google了,我无法真正找到为什么会出现此问题或者如何通过搜索错误来解决此问题。

2 个答案:

答案 0 :(得分:13)

您需要在枚举中添加构造函数。

public enum Status {
   STATUS_OPEN(0),  
   STATUS_STARTED(1),  
   STATUS_INPROGRESS(2),  
   STATUS_ONHOLD(3),  
   STATUS_COMPLETED(4),
   STATUS_CLOSED(5);

   private final int number;
   Status(int number) { 
       this.number = number;
   }

   public int getMagicNumber() { return number; } 
}

这会解决你的语法问题,但是你希望用这个数字来实现什么?通常使用枚举而不是对数字的需要。

答案 1 :(得分:2)

您需要declare status instance variableconstructor。像这样

public enum Status 
 { 
        STATUS_OPEN(0),  
        STATUS_STARTED(1),  
        STATUS_INPROGRESS(2),  
        STATUS_ONHOLD(3),  
        STATUS_COMPLETED(4),  
        STATUS_CLOSED(5); 

       private int status;

       private Status(int status){
        this.status = status;
       }

     public int getStatus(){
       return this.status;
      } 
 }