我对这里发生的事感到困惑。这是一件简单的事情,但由于某种原因,我得到的是枚举的名称,而不是值。
这是我的班级:
public class Class1{
public enum SchoolEnum {
01("MIDDLE_SCHOOL");
private String value;
SchoolEnum(String value) {
this.value = value;
}
@Override
public String toString() {
return String.valueOf(value);
}
}
private SchoolEnum schoolEnum = null;
public SchoolEnum getSchoolEnum () {
return schoolEnum;
}
public void setSchoolEnum (SchoolEnum schoolEnum ) {
this.schoolEnum= schoolEnum;
}
}
通过以下方式在另一个班级中调用它:
Class1 response = new Class1();
response.setSchoolEnum(Class1.SchoolEnum.valueOf("01"));
每当我尝试获取01 Enum的值时,我只是得到01而不是值MIDDLE_SCHOOL。这里发生了什么 ?
答案 0 :(得分:0)
我认为你的声明是错误的。
01("MIDDLE_SCHOOL");
上面的声明会给你编译时错误。因为任何变量名称都不能以数字开头。
您可以使用一些命名建议。
_01("MIDDLE_SCHOOL");
ONE("MIDDLE_SCHOOL");
ZERO_ONE("MIDDLE_SCHOOL");