如何将字符串与枚举的每个成员相关联?

时间:2011-11-09 10:46:48

标签: java

假设我有一些类似以下的枚举:

enum Towns { Rome, Napoli, Modena }

我想为每个枚举成员关联一个字符串。理想情况下,字符串应该是描述。我想确保每个城镇都有描述:

Rome - Beautiful
Napoli - Good pizza
Modena - Ferrari store

如果某个城镇没有描述,我还想让它给出编译时错误。

2 个答案:

答案 0 :(得分:19)

public enum Towns {
    Rome("rome")
    , Napoli("napoli")
    , Modena("modena");

    private String desc;
    Towns(String desc) {
        this.desc=desc;
    }

    public String getDesc() {
        return desc;
    }
}

答案 1 :(得分:4)

enum Towns {
   Rome("Rome-beautiful");
   //add other enum types here too

   private String desc;
   Towns(String desc) 
   {
      this.desc=desc;
   }

   public String getDesc() 
   {
      return desc;
   }
}

枚举被视为类。您可以编写构造函数,具有成员变量和函数。美丽的是,为每个枚举类型调用构造函数,并为每个类型维护状态/