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 "")
完成了,虽然内容有点短,但是又不合适跟其他结合在一起,因此就单独写了一篇博客。太水勿怪哈。