可以从Java中该类的枚举中访问类方法吗?

时间:2013-02-01 21:55:13

标签: java enums

假设我有一个包含Java中枚举的类。是否可以从包含枚举的类中访问方法?举个例子:

public class Foo {

   private string getClassVal() { return "42"; } 

   public string getOtherClassVal() { return "TheAnswer"; } 

   public enum Things {

         ONE("One"), 
         TWO("Two"), 
         THREE("Three"); 

         private String _val; 

         private Things(String val) { _val = val; } 

         // This method is the problem
         public String getSomeVal() {
             return _val + this.getClassVal(); 
         }

         // And this one doesn't work either
         public String getSomeOtherVal() {
             return _val + this.getOtherClassVal(); 
         }

}

我知道上面带注释的枚举方法不起作用并导致错误,因为this所处的上下文。我正在寻找的是我可以访问“外部”类方法的东西从枚举中。或者这是正确的方法吗?

这样的事情可能吗?或者枚举是否锁定在外部方法中,即使是在类中?

1 个答案:

答案 0 :(得分:5)

没有

因为enum始终为static,因此没有封闭的实例。

显然,他们可以访问封闭类的public static方法。