-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

这可以做到,但是您有许多语法错误。关键是为枚举成员变量提供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

假设你有这样的内心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

但最好将所有字段设为私有并使用 getter:

Animals.Animal.a1.getName()
于 2012-08-30T17:34:48.853 回答
0

如果我理解正确,我相信 OP 在问:

“给定一个字符串“a1”,返回一个Animal类型的对象,其值为Animal.a1”</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 回答