Перечисление Java дает ошибку? - PullRequest
4 голосов
/ 12 января 2012

Когда я пытаюсь дать значение моему перечислению, это выдает мне эту ошибку:

статус конструктора в enum status не может быть применен к данным типам; 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.

Я следил за этим сайтом: ссылка

Я погуглил и не смог найти причину возникновения этой проблемы или как ее исправить, выполнив поиск ошибки.

Ответы [ 2 ]

14 голосов
/ 12 января 2012

Вам нужно добавить конструктор в перечисление.

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; } 
}

Это исправит ваши проблемы с синтаксисом, но чего вы надеетесь достичь с помощью числа? Перечисления часто используются вместо нумерации вообще.

2 голосов
/ 12 января 2012

нужно declare, status instance variable и constructor.как это

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;
      } 
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...