如何訪問Name
字段?從外部訪問Java的枚舉字段
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;
}
}
如何訪問Name
字段?從外部訪問Java的枚舉字段
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;
}
}
如果我理解正確的話,我相信OP在問:
「給定一個字符串,‘A1’,返回類型動物的目標與價值Animal.a1」
...在這種情況下, ,你正在尋找的方法是Enum.valueOf(類,字符串)
String enumName = "a1";
Animal a = Enum.valueOf (Animal.class (enumName));
if (null == a) {
// error handler …
} else {
// do something interesting with 「a」
}
這可以做到,但是你有一些語法錯誤。關鍵是爲枚舉成員變量提供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
,但更好地使所有領域私人並使用吸氣:
Animals.Animal.a1.getName()
目前尚不清楚你的問題是什麼。你能澄清一下嗎? – Bill
另外你的例子有一些編譯錯誤。請修復它們。 –