美文网首页
Java结果统一返回封装类

Java结果统一返回封装类

作者: 韩朝阳 | 来源:发表于2021-01-08 11:00 被阅读0次

    结果枚举类

    public enum ResultEnum {
    
        SUCCESS(200, "成功"),
    
        NO_PERMISSION(403, "权限不足"),
    
        NOT_FOUND(404, "资源不存在"),
    
        SERVER_ERROR(500, "服务器错误");
    
        private final Integer code;
    
        private final String message;
    
        ResultEnum(Integer code, String message) {
            this.code = code;
            this.message = message;
        }
    
        public Integer getCode() {
            return code;
        }
    
        public String getMessage() {
            return message;
        }
    
        @Override
        public String toString() {
            return "ResultEnum{" +
                    "code=" + code +
                    ", message='" + message + '\'' +
                    '}';
        }
    
    }
    

    结果类

    import com.fasterxml.jackson.annotation.JsonIgnore;
    
    public class Result<D> {
    
        private final Integer code;
    
        private final String message;
    
        private D data;
    
        public Result(ResultEnum resultEnum) {
            this.code = resultEnum.getCode();
            this.message = resultEnum.getMessage();
        }
    
        public Result(ResultEnum resultEnum, D data) {
            this.code = resultEnum.getCode();
            this.message = resultEnum.getMessage();
            this.data = data;
        }
    
        public Integer getCode() {
            return code;
        }
    
        public String getMessage() {
            return message;
        }
    
        public D getData() {
            return data;
        }
    
        public void setData(D data) {
            this.data = data;
        }
    
        @Override
        public String toString() {
            return "Result{" +
                    "code=" + code +
                    ", message='" + message + '\'' +
                    ", data=" + data +
                    '}';
        }
    
        @JsonIgnore
        public boolean isSuccess() {
            return this.code.equals(ResultEnum.SUCCESS.getCode());
        }
    
    }
    

    使用

    public class Test {
    
        // 成功,无返回数据
        public Result<Void> test1() {
            return new Result<>(ResultEnum.SUCCESS);
        }
    
        // 成功,有返回数据
        public Result<Object> test2() {
            return new Result<>(ResultEnum.SUCCESS, new Object());
        }
        
        // 错误,无返回数据
        public Result<Void> test3() {
            return new Result<>(ResultEnum.NOT_FOUND);
        }
        
        // 错误,有返回值
        public Result<Object> test4() {
            return new Result<>(ResultEnum.SERVER_ERROR, new Object());
        }
        
        // 方法间调用
        public void test5() {
            Result<Void> result = this.test1();
            if(result.isSuccess()) {
                // Do something
            }
        }
    
    }
    

    相关文章

      网友评论

          本文标题:Java结果统一返回封装类

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