zoukankan      html  css  js  c++  java
  • Java基础之枚举妙用

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

    这里写图片描述

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

  • 相关阅读:
    Scala学习十二——高阶函数
    Scala学习十一——操作符
    Scala学习十——特质
    Scala学习九——文件和正则表达式
    Scala学习八——继承
    Scala学习七——包和引入
    Scala学习六——对象
    Scala学习五——类
    Scala学习四——映射和数组
    Spark Broadcast内幕解密:Broadcast运行机制彻底解密、Broadcast源码解析、Broadcast最佳实践
  • 原文地址:https://www.cnblogs.com/aiwz/p/6154573.html
Copyright © 2011-2022 走看看