结果工具类:ResultUtil
2022-08-04 本文已影响0人
大师艾小伦
功能
在项目中,Result 作为结果类。ResultUtil 作为辅助工具类,提供不同场景的Result对象的输出
功能列表
方法 | 功能 |
---|---|
result( code, message) | 根据code和message 返回一个Result对象 |
result(messageInfo) | 使用 MessageInfo 生成一个Result对象 |
success() | 构造一个不带数据表示成功的Result对象 |
success( data) | 构造一个带有数据表示成功的Result对象 |
successStr(data) | 构造一个带有数据表示成功的Result对象的Json字符串 |
error(code, message) | 根据code和message 返回一个Result对象,语义上表示失败 |
error(exception ) | 使用 异常构造一个Result结果 |
代码
/**
* Result 工具类
* 用于产生Result 对象
*
* @param <T>
*/
public class ResultUtil<T> {
/**
* 根据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());
}
/**
* 构造一个不带数据表示成功的Result对象
*
* @return Result
*/
public static Result success() {
return new Result(CommonMessage.SUCCESS.getCode(), CommonMessage.SUCCESS.getMessage());
}
/**
* 构造一个带有数据表示成功的Result对象
*
* @param data 数据
* @param <T> 类型
* @return 成功返回结果
*/
public static <T> Result<T> success(T data) {
return new Result<>(CommonMessage.SUCCESS.getCode(), CommonMessage.SUCCESS.getMessage(), data);
}
/**
* 构造一个带有数据表示成功的Result对象的Json字符串
*
* @param data
* @return
*/
public static String successStr(Object data) {
return JSONUtil.toJsonStr(ResultUtil.success(data));
}
/**
* 根据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)}接口返回
* 否则,返回一个系统异常,系统异常定义参考{@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());
}
}