对于枚举,初学Java的时候可能我们就已经接触过了,但是在毕业前,其实一直都不知道真正工作里面枚举是怎么用的,枚举有什么用?接下来,博主就介绍枚举在实际工作中的一种使用场景,本文只适合初级的小菜鸟看哈,大神看了可别嘲笑这是水文哦,哈哈!
一、使用场景
在实际的工作中,比如我有一个选择家庭关系的下拉选择框,大家都是会是value和desc的组合,一般我们保存到数据库的都是value(英文),然后用户看到的是desc(中文)。但是我很多个页面会用到这样的下拉框,甚至可能很多个系统会用到,需要保持数据源的一致性,因此可以用一个枚举保存起来,然后提供一个接口,所有前端展示的数据源都是从这个接口里面获取。
可能看了这段文字仍然有点蒙,下面直接上代码,结合代码应该就清晰明了了。
二、使用实例
package com.cctvjiatao.Enum;
/**
* 建立枚举
*
* @author keletao
*/
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;
}
}
接下来,我们需要做的可能就是,获取上面枚举的值,然后保存到list里面,如果使用springmvc的话,只需要将这个list传递到前端,然后前端使用js放到select节点里面。这里,我们讲解将枚举放到list部分:
package com.cctvjiatao.Enum;
/**
* 建一个dto
*
* @author keletao
*/
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;
}
}
package com.cctvjiatao.Enum;
import java.util.ArrayList;
import java.util.List;
/**
* 遍历枚举,将枚举里面的值放到list里面
*
* @author keletao
*/
public class EnumTest {
public static void main(String args[]) {
// 遍历枚举
System.out.println("----------遍历枚举FamilyRelation-------------");
for (FamilyRelation familyRelation : FamilyRelation.values()) {
System.out.println(familyRelation.getValue() + ":" + familyRelation.getDesc());
}
List<FamilyRelationDto> list = new ArrayList<FamilyRelationDto>();
System.out.println("----------将枚举存入前,集合list的长度-------------");
System.out.println("list的长度:" + list.size());
// 将枚举存放到list里面
for (FamilyRelation familyRelation : FamilyRelation.values()) {
FamilyRelationDto familyRelationDto = new FamilyRelationDto();
familyRelationDto.setValue(familyRelation.getValue());
familyRelationDto.setDesc(familyRelation.getDesc());
list.add(familyRelationDto);
}
System.out.println("----------将枚举存入后,集合list的长度-------------");
System.out.println("list的长度:" + list.size());
// 遍历集合list
System.out.println("----------遍历List<FamilyRelationDto>集合list-------------");
for(FamilyRelationDto dto:list){
System.out.println(dto.getValue()+":"+dto.getDesc());
}
}
}
【运行结果】:
----------遍历枚举FamilyRelation-------------
PARENT:父母
SPOUSE:配偶
BROUTHER:兄弟
SISTER:姐妹
SCHOOLMATE:同学
FRIEND:朋友
----------将枚举存入前,集合list的长度-------------
list的长度:0
----------将枚举存入后,集合list的长度-------------
list的长度:6
----------遍历List<FamilyRelationDto>集合list-------------
PARENT:父母
SPOUSE:配偶
BROUTHER:兄弟
SISTER:姐妹
SCHOOLMATE:同学
FRIEND:朋友