Java基础之枚举妙用

最后更新于:2022-04-01 09:54:12

对于枚举,初学Java的时候可能我们就已经接触过了,但是在毕业前,其实一直都不知道真正工作里面枚举是怎么用的,枚举有什么用?接下来,博主就介绍枚举在实际工作中的一种使用场景,本文只适合初级的小菜鸟看哈,大神看了可别嘲笑这是水文哦,哈哈! ### 一、使用场景 在实际的工作中,比如我有一个选择家庭关系的下拉选择框,大家都是会是value和desc的组合,一般我们保存到数据库的都是value(英文),然后用户看到的是desc(中文)。但是我很多个页面会用到这样的下拉框,甚至可能很多个系统会用到,需要保持数据源的一致性,因此可以用一个枚举保存起来,然后提供一个接口,所有前端展示的数据源都是从这个接口里面获取。 可能看了这段文字仍然有点蒙,下面直接上代码,结合代码应该就清晰明了了。 ### 二、使用实例 **2.1、建立枚举如下** ~~~ package com.luo.test; public enum FamilyRelation { /** 父母 */ PARENT("PARENT", "父母"), /** 配偶 */ SPOUSE("SPOUSE", "配偶"), /** 兄弟 */ BROUTHER("BROUTHER", "兄弟"), /** 姐妹 */ SISTER("SISTER", "姐妹"), /** 同学 */ SCHOOLMATE("SCHOOLMATE", "同学"), /** 朋友 */ FRIEND("FRIEND", "朋友"); private String value; private String desc; private FamilyRelation(String value, String desc) { this.setValue(value); this.setDesc(desc); } public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } } ~~~ **2.2、枚举的使用** 接下来,我们需要做的可能就是,获取上面枚举的值,然后保存到list里面,如果使用springmvc的话,只需要将这个list传递到前端,然后前端使用js放到select节点里面。 这里之讲解将枚举放到list部分。 先建一个dto如下: ~~~ package com.luo.test; public class FamilyRelationDto { //关系值 private String value; //关系描述 private String desc; public String getValue() { return value; } public void setValue(String value) { this.value = value; } public String getDesc() { return desc; } public void setDesc(String desc) { this.desc = desc; } } ~~~ 将遍历枚举,将枚举里面的值放到list里面: ~~~ package com.luo.test; import java.util.ArrayList; import java.util.List; public class EnumTest { public static void main(String args[]){ //遍历枚举 System.out.println("----------遍历枚举-------------"); for(FamilyRelation familyRelation : FamilyRelation.values()){ System.out.println(familyRelation.getValue() + ":" + familyRelation.getDesc()); } //将枚举存放到list里面 List<FamilyRelationDto> list = new ArrayList<FamilyRelationDto>(); for(FamilyRelation familyRelation : FamilyRelation.values()){ FamilyRelationDto familyRelationDto = new FamilyRelationDto(); familyRelationDto.setValue(familyRelation.getValue()); familyRelationDto.setDesc(familyRelation.getDesc()); list.add(familyRelationDto); } System.out.println("list的长度:" + list.size()); } } ~~~ 2.3、运行结果 ![这里写图片描述](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-03-15_56e77db4ec996.jpg "") 完成了,虽然内容有点短,但是又不合适跟其他结合在一起,因此就单独写了一篇博客。太水勿怪哈。
';