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 に答える