【问题标题】:Java Access Enum specific methods?Java Access Enum 的具体方法?
【发布时间】:2012-04-20 19:13:53
【问题描述】:

我已经这样创建了一个枚举:

enum Types { hi, hello, bye }

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

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

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

【问题讨论】:

  • 这是你的代码吗,好像少了一个}

标签: java string enums return getter


【解决方案1】:

在您的枚举类中,将您要访问的方法定义为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 {
  ...
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-25
        • 2015-12-05
        • 1970-01-01
        • 2011-08-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多