试图了解java枚举的工作原理

试图了解java枚举的工作原理,java,Java,我编写了以下Java类,它基于GoogleWebToolkit源代码的SAMPLES文件夹中的EXPENSES应用程序。代码如下 我的目标是理解java枚举是如何工作的,我认为这可能是一个很好的起点。我在网上查阅了有关Enum的资料,了解了基本概念。然而,我仍然在努力理解这段代码 这是我的代码: public class Expenses { public static enum Approval { BLANK("", APPROVED("Approved"),DEN

我编写了以下Java类,它基于GoogleWebToolkit源代码的SAMPLES文件夹中的EXPENSES应用程序。代码如下

我的目标是理解java枚举是如何工作的,我认为这可能是一个很好的起点。我在网上查阅了有关Enum的资料,了解了基本概念。然而,我仍然在努力理解这段代码

这是我的代码:

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抱怨批准和拒绝

类型的拒绝方法(字符串)未定义
费用.批准
-未为类型定义已批准的方法(字符串)
费用.批准
什么是空白(…)的东西?它是某种数据结构吗? 这是怎么回事



我所要寻找的只是一种理解这段代码的方法,并在尝试进一步研究这段代码之前消除编译错误。

这是一个括号问题。添加换行符以增加可读性

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

检查括号。这是一个更好的枚举教程:。花点时间阅读教程,不要盲目地复制代码。谢谢。是括号。