2014-11-18 3 views
-2

Я написал следующий Java-класс, основанный на приложении EXPENSES в папке SAMPLES исходного кода Google Web Toolkit. Код ниже.Попытка понять, как работают java enums

Моя цель - понять, как работают java enums, и я подумал, что это может быть хорошей отправной точкой. Я прочитал материал в Интернете о ENUMS, и я получил базовую концепцию. Однако я все еще пытаюсь понять этот фрагмент кода.

Это мой код:

public class Expenses { 

    public static enum Approval { 
     BLANK("", APPROVED("Approved"),DENIED("Denied")); 

     /** 
     * Get the {@link Approval} from the specified string. 
     * 
     * @param approval the approval string 
     * @return the {@link Approval} 
     */ 
     public static Approval from(String approval) { 
      if (APPROVED.is(approval)) { 
      return APPROVED; 
      } else if (DENIED.is(approval)) { 
      return DENIED; 
      } 
      return BLANK; 
     } 

     private final String text; 


     private Approval(String text) { 
       this.text = text; 
     } 

     public String getText() { 
       return text; 
      } 

     public boolean is(String compare) { 
       return text.equals(compare); 
      } 

    } 

    public static final String[] DEPARTMENTS = { 
      "Engineering", "Finance", "Marketing", "Operations", "Sales"}; 


} 

Eclipse, жалуется УТВЕРЖДЕН и ЗАПРЕЩЕН.

The method DENIED(String) is undefined for the type 
    Expenses.Approval 
    - The method APPROVED(String) is undefined for the type 
    Expenses.Approval 

Что такое BLANK (...) вещь? Это какая-то структура данных? Как это работает?


Все, что я ищу способ, чтобы понять этот код, и избавиться от ошибок компиляции, прежде чем пытаться работать на этом коде.

+2

Проверьте свои круглые скобки. –

+0

Это лучший учебник Enum: https://docs.oracle.com/javase/tutorial/java/javaOO/enum.html. Найдите время, чтобы прочитать учебники, не просто слепо копировать код. – Freiheit

+0

Спасибо. Это были круглые скобки. – user3825558

ответ

2

Это проблема с круглыми скобками. Добавьте разрыв строки для повышения удобочитаемости.

BLANK(""), 
APPROVED("Approved"), 
DENIED("Denied"); 
+0

Вот и все. Проблема с круглыми скобками. Это решило мою проблему. – user3825558

Смежные вопросы