3

假设我有一个包含 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。我正在寻找的是可以从枚举中访问“外部”类方法的东西。或者这甚至是正确的方法?

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

4

1 回答 1

5

不。

因为enums 总是static,因此没有封闭的实例。

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

于 2013-02-01T21:58:34.843 回答