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