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();
  }

別の方法として、enum クラスにインターフェイスを実装させます。

public interface StringProvider {
     String getString();
}

public enum Types implements StringProvider {
  ...
}
于 2012-04-07T15:48:17.060 に答える
0

メソッドとフィールドの宣言は、列​​挙型 (つまり、型) 内に配置する必要があります。hi、bye、hello は Type のインスタンスです。

于 2012-04-07T15:51:21.137 に答える
-1

あなたはそれを正確に正しく行っていません。
Sun には、列挙型にメソッドとフィールドを含める方法に関するドキュメントがあります。ここあります。

于 2012-04-07T15:51:12.487 に答える