2

我这样创建了一个枚举:

enum Types { hi, hello, bye }

我在每个单独的枚举中添加了一个吸气剂,如下所示:

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

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

4

3 回答 3

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 {
  ...
}
于 2012-04-07T15:48:17.060 回答
0

方法和字段声明应该放在枚举中(即类型)。hi、bye 和 hello 是 Types 的实例。

于 2012-04-07T15:51:21.137 回答
-1

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

于 2012-04-07T15:51:12.487 回答