美文网首页
Java对返回值的封装

Java对返回值的封装

作者: 通通小小通 | 来源:发表于2019-03-05 10:45 被阅读0次

直接上代码
1.定义自己所需要的返回值类型

public class CodeMsg implements Cloneable {
    private int retCode;
    private String message;

    // 通用异常
    public static CodeMsg SUCCESS = new CodeMsg(0, "success");
    public static CodeMsg EMPTY_PARAM_ERROR = new CodeMsg(400, "参数为空");
    public static CodeMsg INTER_ERROR = new CodeMsg(505, "服务端异常");

    private CodeMsg(int retCode, String message) {
        this.retCode = retCode;
        this.message = message;
    }

    public int getRetCode() {
        return retCode;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    @Override
    protected Object clone() throws CloneNotSupportedException {
        return (CodeMsg) super.clone();
    }
}

2.返回值的封装

package com.ystx.common;

public class Result<T> {
    private String message;
    private int retCode;
    private T data;

    private Result(T data) {
        this.retCode = 200;
        this.message = "成功";
        this.data = data;
    }

    private Result(CodeMsg cm) {
        if (cm == null) {
            return;
        }
        this.retCode = cm.getRetCode();
        this.message = cm.getMessage();
    }

    /**
     * 成功时候的调用
     *
     * @return
     */
    public static <T> Result<T> success(T data) {
        return new Result<T>(data);
    }

    /**
     * 成功,不需要传入参数
     *
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> Result<T> success() {
        return (Result<T>) success("");
    }

    /**
     * 失败时候的调用
     *
     * @return
     */
    public static <T> Result<T> error(CodeMsg cm) {
        return new Result<T>(cm);
    }

    /**
     * 失败时候的调用,扩展消息参数
     *
     * @param cm
     * @param msg
     * @return
     */
    public static <T> Result<T> error(CodeMsg cm, String msg) {
        CodeMsg newCodeMsg = null;
        try {
            newCodeMsg = (CodeMsg) cm.clone();
        } catch (Exception e) {
            e.printStackTrace();
        }
        newCodeMsg.setMessage(cm.getMessage() + "--" + msg);
        return new Result<T>(newCodeMsg);
    }

    public T getData() {
        return data;
    }

    public String getMessage() {
        return message;
    }

    public int getRetCode() {
        return retCode;
    }


}

相关文章

  • Java对返回值的封装

    直接上代码1.定义自己所需要的返回值类型 2.返回值的封装

  • Kotlin-1 | 简洁的代码

    省略语句后的分号 对常用函数的封装 函数声明和返回值的简化 常用结构的简化 在 Java 中若要新建一个实体类,常...

  • 对IPage返回值封装

    这个接口我们使用了WorkOrder这个类自带的mapper进行数据的查询,返回结果封装为IPage

  • NO.87 管理控制层代码重构及实现添加模块

    管理控制层代码重构 1.重构方法的返回值,对返回值进行统一封装实际项目中现在通常会对控制层返回的数据进行统一封装....

  • Java基础整理(二)

    Java方法的几种类型 无参无返回值的方法 无参有返回值的方法 有参无返回值的方法 有参有返回值的方法 Java ...

  • Java方法签名与方法块

    Java方法签名 Java的方法签名不包括返回值。 Java的方法签名包括:方法名和参数。不包括方法返回值。所以由...

  • 封装

    优秀文章 菜鸟教程 > Java 封装 说明 封装是对抽象的编码实现;<个人理解> 封装的实质是用访问修饰符来控制...

  • 11.条件控制语句if

    kotlin的if有返回值的,java的if没有返回值,kotlin的if是表达式语法,java的if属于声明式语...

  • kotlin基础语法

    函数定义 有返回值的函数 无返回值的函数(类似Java中的void): 可变长参数函数 静态方法 Java代码: ...

  • JAVA 对HTTP请求封装

    在现在rest接口越来越流行的情况下,前后端交互也变得更加便捷,难免在自测试中会用到较多的http请求

网友评论

      本文标题:Java对返回值的封装

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