枚举值不以valueOf返回

时间:2017-06-13 01:17:33

标签: java spring-boot

我对这里发生的事感到困惑。这是一件简单的事情,但由于某种原因,我得到的是枚举的名称,而不是值。

这是我的班级:

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。这里发生了什么 ?

1 个答案:

答案 0 :(得分:0)

我认为你的声明是错误的。

01("MIDDLE_SCHOOL");

上面的声明会给你编译时错误。因为任何变量名称都不能以数字开头。

您可以使用一些命名建议。

_01("MIDDLE_SCHOOL");
ONE("MIDDLE_SCHOOL");
ZERO_ONE("MIDDLE_SCHOOL");