功能
在項目中,Result 作為結果類连舍。ResultUtil 作為輔助工具類,提供不同場景的Result對象的輸出
功能列表
方法 | 功能 |
---|---|
result( code, message) | 根據(jù)code和message 返回一個Result對象 |
result(messageInfo) | 使用 MessageInfo 生成一個Result對象 |
success() | 構造一個不帶數(shù)據(jù)表示成功的Result對象 |
success( data) | 構造一個帶有數(shù)據(jù)表示成功的Result對象 |
successStr(data) | 構造一個帶有數(shù)據(jù)表示成功的Result對象的Json字符串 |
error(code, message) | 根據(jù)code和message 返回一個Result對象,語義上表示失敗 |
error(exception ) | 使用 異常構造一個Result結果 |
代碼
/**
* Result 工具類
* 用于產(chǎn)生Result 對象
*
* @param <T>
*/
public class ResultUtil<T> {
/**
* 根據(jù)code和message 返回一個Result對象
*
* @param code code
* @param message message
* @param <T>
* @return
*/
public static <T> Result<T> result(String code, String message) {
return new Result<>(code, message);
}
/**
* 使用 MessageInfo 生成一個Result對象
* MessageInfo 接口能提供 Result對象中所需要的code和message的值
*
* @param messageInfo MessageInfo 對象
* @param <T>
* @return Result 對象
*/
public static <T> Result<T> result(MessageInfo messageInfo) {
return new Result<>(messageInfo.getCode(), messageInfo.getMessage());
}
/**
* 構造一個不帶數(shù)據(jù)表示成功的Result對象
*
* @return Result
*/
public static Result success() {
return new Result(CommonMessage.SUCCESS.getCode(), CommonMessage.SUCCESS.getMessage());
}
/**
* 構造一個帶有數(shù)據(jù)表示成功的Result對象
*
* @param data 數(shù)據(jù)
* @param <T> 類型
* @return 成功返回結果
*/
public static <T> Result<T> success(T data) {
return new Result<>(CommonMessage.SUCCESS.getCode(), CommonMessage.SUCCESS.getMessage(), data);
}
/**
* 構造一個帶有數(shù)據(jù)表示成功的Result對象的Json字符串
*
* @param data
* @return
*/
public static String successStr(Object data) {
return JSONUtil.toJsonStr(ResultUtil.success(data));
}
/**
* 根據(jù)code和message 返回一個Result對象
* 語義上表示返回失敗的結果
*
* @param code code
* @param message message
* @param <T>
* @return
*/
public static <T> Result<T> error(String code, String message) {
return new Result<>(code, message);
}
/**
* 使用 異常構造一個Result結果
* 如果異常是MessageInfo 類型的話专普,通過 {@link ResultUtil#result(MessageInfo)}接口返回
* 否則丽已,返回一個系統(tǒng)異常藕夫,系統(tǒng)異常定義參考{@link CommonMessage#SYS_ERR}
*
* @param e
* @param <T>
* @return
*/
public static <T> Result<T> error(Exception e) {
if (e instanceof MessageInfo) {
MessageInfo messageInfo = (MessageInfo) e;
return result(messageInfo);
}
return new Result<>(CommonMessage.SYS_ERR.getCode(), e.getMessage());
}
}