Java Access Enum的具体方法?

时间:2012-04-07 15:46:23

标签: java string enums return getter

我已经创建了一个枚举:

enum Types { hi, hello, bye }

我在每个枚举中添加了一个getter:

enum Types {
    hi {
        String test = "From hi";
        public String getString() {
        return test;
    },
    etc.
}

除了我不能调用“Types.hi.getString()”。有没有办法做到这一点?谢谢!

3 个答案:

答案 0 :(得分:8)

在您的枚举类中,将您要访问的方法定义为public abstract

像这样:

 enum Types {
      hi {
        public String getString() {
          return "From hi";
        }
      };

      public abstract String getString();
  }

作为替代方案,让你的枚举类实现一个接口:

public interface StringProvider {
     String getString();
}

public enum Types implements StringProvider {
  ...
}

答案 1 :(得分:0)

方法和字段声明应该在枚举内(即类型)。嗨,再见和你好是类型的实例。

答案 2 :(得分:-1)

你做得并不完全正确 Sun有一个关于如何在枚举中包含方法和字段的文档。这里it是。