Java枚舉類型的理解及在后台響應中的使用


在前后台分離開發過程中,統一響應的格式可以使用枚舉類型進行規范開發,對於不同的錯誤/異常類型可以響應不同的狀態碼和響應信息。

1,枚舉類型的簡單理解:枚舉類型就是包含了已經創建好對象的final類,這個final類的開始是一些枚舉變量,枚舉變量可以有多個值,這些參數被賦給了枚舉對象,

  枚舉對象可以通過枚舉類調用枚舉變量獲取。

  總結以下幾點:

  1)枚舉類型不能被繼承或者實現(final)

  2)枚舉類型的構造方法默認為private,且只能為private,也就是說不能new 對象,只能使用“已經創建好的枚舉對象”

    (1) 枚舉類型必須提供枚舉對象參數所對應的構造方法

    (2) 由於只能有私有構造方法,所以枚舉類型不能繼續其他類,但是可以實現接口和其他枚舉類型。

  3)除過上述兩點外,枚舉類和其他普通類沒什么區別,也可以有屬性,也可以有setter&getter,實際上,枚舉類必須有枚舉參數對應的屬性,

    不然枚舉變量中賦的值是沒有意義的,是無法獲取到。

2,枚舉類型響應碼舉例:

 
         
/**
  枚舉類
* @author Jong
*/
public enum ProcessEnum {


SUBMIT_SUCCESS(1,"處理提交成功"),

SUBMIT_FAIL(-1,"處理提交失敗"),

EXECUTE_FAIL(-2,"處理執行失敗"),

EXECUTE_SUCCESS(2,"處理成功");

private int code;

private String message;

ProcessEnum(int code, String message) {
this.code = code;
this.message = message;
}

public int getCode() {
return code;
}

public String getMessage() {
return message;
}

}
/**
* 通用響應信息
*/
@Data
public class Response {

private int code;

private String message;

public Response(ProcessEnum processEnum) {
this.code = processEnum.getCode();
this.message = processEnum.getMessage();
}

}
/**
* 增強響應信息
*/
@Data
public class TaskResponse extends Response {

private String taskId;

public TaskResponse(ProcessEnum processEnum, String taskId) {
super(processEnum);
this.taskId = taskId;
}


}
枚舉對象的一個重要的使用場景就是,解決硬編碼的問題,作用類似於類中的常量,只不過有多個維度的值,所以大多數情況下不直接操作枚舉對象,枚舉類提供了兩個很有用的靜態
方法來操作枚舉變量:
ProcessEnum executeSuccess = ProcessEnum.valueOf("EXECUTE_SUCCESS");
ProcessEnum[] enums = ProcessEnum.values();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM