【java基礎】之枚舉(enum)

前言

在我們學習java基礎的時候,老師或教程裏或多或少的提到一些枚舉的使用。但是枚舉究竟有什麼作用呢?下面我將詳細講解枚舉的作用和使用,希望大家對枚舉有更加深刻的理解。

1,解決硬編碼問題

public enum DataEnum {
    ISGUARD(1, "是管理員"),
    NOTISGUARD(0, "是普通學生");

    private String msg;
    private Integer code;

    DataEnum(Integer code, String msg) {
        this.msg = msg;
        this.code = code;
    }

    public Integer getCode() {
        return code;
    }

通過DataEnum.ISGUARD.getCode();我們就可以設置是否具有某個屬性.

2,拋出自定義的異常

自定義異常的枚舉類

public enum MyExceptionEnum {
    NOTSUCHPORT(1, "沒有這樣的端口"),
    PORTINUSER(2, "端口已經被佔用"),
    IOEXCEPTION(3, "io轉換異常"),
    TOOMANYLISTENERS(4, "監聽的類對象過多"),
    UNSUPPORTEDCOMMOPERATION(5, "不支持這樣的端口操作"),
    INTERRUPTED(6, "數據延時出現了問題"),
    SERVLETERROR(7, "servlet出現了異常"),
    INTERRUPTEDEXCEPTION(8,"線程中斷"),

    PRODUCT_STATUS_ERROR(9,"商品狀態不正確"),
    PRODUCT_NOT_NULL(10,"商品狀態不能爲空"),

    PRODUCT_UP_ERROR(11,"商品上架失敗");
    private Integer code;
    private String message;

    MyExceptionEnum(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    MyExceptionEnum() {

    }

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }
}


自定義異常類:
詳解:自定義異常繼承了RuntimeException 類,裏面設置一個構造方法,構造方法裏出傳入的是自定義枚舉異常類,調用的是父類的拋出異常,顯示自己定義的異常信息。
public class MyException extends RuntimeException {

private Integer code;

public MyException(MyExceptionEnum myExceptionEnum) {
    super(myExceptionEnum.getMessage());
}
}

在使用的時候我們就可以這樣寫啦

 try {
            portDataList = SerialSendDataUtil.getPortData();
        } catch (InterruptedException e) {

            throw new MyException(MyExceptionEnum.INTERRUPTEDEXCEPTION);
        }

通過以上的步驟,我們就能解決大多數的硬編碼問題,使我們的代碼看起來更加的簡介,易懂。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章