从外部访问Java枚举字段
如何访问从外部访问Java枚举字段,java,enums,Java,Enums,如何访问名称字段 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; } } 这是可以做到的,但是您有许多语法错
名称
字段
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;
}
}
}
您可以使用字段(因此没有括号)获取名称
但最好将所有字段设置为私有并使用getter:
Animals.Animal.a1.getName()
如果我理解正确,我相信OP是在问: 给定字符串“a1”,返回值为Animal.a1的Animal类型的对象 …在这种情况下,您要查找的方法是Enum.valueOf(Class,String)
你的问题是什么还不清楚。你能澄清一下吗?你的例子也有一些编译错误。请把它们修好。
Animals.Animal.a1.getName()
String enumName = "a1";
Animal a = Enum.valueOf (Animal.class (enumName));
if (null == a) {
// error handler …
} else {
// do something interesting with “a”
}