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

若有錯誤,歡迎你們指正。開發

相關文章
相關標籤/搜索