我如何访问该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;
}
}
这可以做到,但是您有许多语法错误。关键是为枚举成员变量提供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();
假设你有这样的内心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()
如果我理解正确,我相信 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”
}