Java基础之枚举妙用

x33g5p2x  于2021-03-13 发布在 Java  
字(2.2k)|赞(0)|评价(0)|浏览(319)

对于枚举,初学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、运行结果

这里写图片描述

完成了,虽然内容有点短,但是又不合适跟其他结合在一起,因此就单独写了一篇博客。太水勿怪哈。

相关文章

微信公众号

最新文章

更多