美文网首页
结果工具类:ResultUtil

结果工具类:ResultUtil

作者: 大师艾小伦 | 来源:发表于2022-08-04 11:19 被阅读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());
    }
}

相关文章

网友评论

      本文标题:结果工具类:ResultUtil

      本文链接:https://www.haomeiwen.com/subject/wkkpwrtx.html