-2

Nameフィールドへのアクセス方法を教えてください。

public class Animals {

    public enum animal{
        a1("CAT", 4),
        a2("DOG", 4);
    }

    String Name;
    int E;
    public animal(String Name, int E){
        this.Name = Name;
        this.E    = E;
    }
}
4

3 に答える 3

1

これは実行できますが、多くの構文エラーがあります。重要なのは、enum メンバー変数に getter メソッドを提供することです。

public enum Animal {
  a1("CAT", 4), a2("DOG", 4);
  private String Name;
  private int E;

  private animal(String Name, int E)
  {
    this.Name = Name;
    this.E = E;
  }

  public String getName() {
    return Name;
  }

  public int getE() {
    return E;
  }
}

その後、プログラムの残りの部分でこれらの値にアクセスできます。

Animal.a1.getName();
于 2012-08-30T17:29:04.617 に答える
0

私が正しく理解していれば、OPが尋ねていると思います:

「文字列 "a1" が与えられた場合、値が Animal.a1 の Animal 型のオブジェクトを返します」</p>

…この場合、探しているメソッドは Enum.valueOf(Class,String) になります

 String enumName = "a1";
 Animal a = Enum.valueOf (Animal.class (enumName));
 if (null == a) {
      // error handler …
 } else {
      // do something interesting with “a”
 }
于 2012-08-30T18:05:19.010 に答える
0

enum次のようなインナーがあるとします。

public class Animals {

    public enum Animal {
        a1("CAT", 4), a2("DOG", 4);

        final String Name;
        final int E;

        private Animal(String Name, int E) {
            this.Name = Name;
            this.E = E;
        }

        public String getName() {
            return Name;
        }
    }
}

(フィールドなので括弧なし)を使用して名前を取得できます

Animals.Animal.a1.Name

ただし、すべてのフィールドを非公開にしてゲッターを使用することをお勧めします。

Animals.Animal.a1.getName()
于 2012-08-30T17:34:48.853 に答える