Java 使用枚举类的实例

枚举类相信不陌生,但实际开发中或者接手以前的代码,发现大部分仍是使用常量Constant来替代,其实枚举类拥有更多的优势。前端

这里咱们只讲一个开发中实际用到的例子,如今有以下的一个场景:java

假设如今有一个实体类User,有一个属性status,若是status为0表示正常,status为1表示无效,而咱们在数据库中存储是数值,但前端客户所看见的应该是字符串,如何来创建起这么一个关系?这里就能够用到枚举类,代码以下:数据库

 

public class User implements Serializable {

  private static final long serialVersionUID = 5550303936960514419L;

    /** id */
    private Integer id;  //set,get方法省略

    /** 标题 */
    private String userName;//set,get方法省略

     /** 状态 */
    private String status;//set,get方法省略

    
    public static enum statusEnum{
                                             STATUS_ZHENCHANG (0, "正常"),
                                             STATUS_WUXIAO (1, "无效");

        private final int type;
        private final String desc;

        statusEnum(int type, String desc) {
            this.type = type;
            this.desc = desc;
        }

        public int getType () {
            return type;
        }

        public String getDesc () {
            return desc;
        }

        public static String getDesc (int index) {
            for (statusEnumc : statusEnum.values ()) {
                if (c.getType () == index) {
                    return c.desc;
                }
            }
            return null;
        }

    }

}

咱们本身在User内部定义一个status的枚举类,来描述其状态值和说明,这里能够很直观的它们的关系,关于枚举类的基本用法能够自行了解。this

接着,咱们从数据库中查出了User,将status属性经过相应的映射为字符串描述,以下:lua

User u = new User();
        u.setStatus(User.statusEnum.getDesc(u.getStatus()); //status,0:正常 1:无效
        System.out.println(u.getStatus());//输出为正常

这样就经过枚举类型,能够自定义的,而且很优美的进行开发工做,值得注意的是如上面的getDesc是咱们本身写的,枚举类本身提供了一些操做自己元素的方法,如statusEnum.values就是返回全部的元素。code

若有错误,欢迎你们指正。开发

相关文章
相关标签/搜索