前言
在我們學習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);
}
通過以上的步驟,我們就能解決大多數的硬編碼問題,使我們的代碼看起來更加的簡介,易懂。