[转载] Java对返回值的封装

参考链接: 用Java封装

定义自己所需要的返回值类型 

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();

    }

返回值的封装 

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;

    }

 

 

参考返回码定义 

// 成功状态码

public static final int SUCCESS = 1;

 

// -------------------失败状态码----------------------

// 参数错误

public static final int PARAMS_IS_NULL = 10001;// 参数为空

public static final int PARAMS_NOT_COMPLETE = 10002; // 参数不全

public static final int PARAMS_TYPE_ERROR = 1003; // 参数类型错误

public static final int PARAMS_IS_INVALID = 10004; // 参数无效

 

// 用户错误

public static final int USER_NOT_EXIST = 20001; // 用户不存在

public static final int USER_NOT_LOGGED_IN = 20002; // 用户未登陆

public static final int USER_ACCOUNT_ERROR = 20003; // 用户名或密码错误

public static final int USER_ACCOUNT_FORBIDDEN = 20004; // 用户账户已被禁用

public static final int USER_HAS_EXIST = 20005;// 用户已存在

 

// 业务错误

public static final int BUSINESS_ERROR = 30001;// 系统业务出现问题

 

// 系统错误

public static final int SYSTEM_INNER_ERROR = 40001; // 系统内部错误

 

// 数据错误

public static final int DATA_NOT_FOUND = 50001; // 数据未找到

public static final int DATA_IS_WRONG = 50002;// 数据有误

public static final int DATA_ALREADY_EXISTED = 50003;// 数据已存在

 

// 接口错误

public static final int INTERFACE_INNER_INVOKE_ERROR = 60001; // 系统内部接口调用异常

public static final int INTERFACE_OUTER_INVOKE_ERROR = 60002;// 系统外部接口调用异常

public static final int INTERFACE_FORBIDDEN = 60003;// 接口禁止访问

public static final int INTERFACE_ADDRESS_INVALID = 60004;// 接口地址无效

public static final int INTERFACE_REQUEST_TIMEOUT = 60005;// 接口请求超时

public static final int INTERFACE_EXCEED_LOAD = 60006;// 接口负载过高

 

// 权限错误

public static final int PERMISSION_NO_ACCESS = 70001;// 没有访问权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/540344.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

stateful set 学习笔记

2019独角兽企业重金招聘Python工程师标准>>> 1、创建pv # cat pv.yaml kind: PersistentVolume apiVersion: v1 metadata:name: task-pv-volumelabels:type: local spec:capacity:storage: 3GiaccessModes:- ReadWriteOncehostPath:path: "/tmp/data" 2、…

[转载] Java中对象数组的使用

参考链接&#xff1a; 如何在Java中交换或交换对象 Java对象数组使用 一、Java数组的使用二、Java的对象数组2.1 问题提出2.2 问题解析2.3 问题拆分2.4 代码实现 一、Java数组的使用 对象数组其实和Java的数组类似的&#xff0c;所以要很清楚Java的数组是如何使用的&#xf…

Python自动化开发学习13-联合唯一

联合唯一 联合唯一&#xff0c;就是一个表中的多个字段的组合需要唯一。 使用mysql语句创建 比如创建一张hosts表&#xff0c;记录登录的ip地址或者hostname&#xff08;表中对应字段host&#xff09;和 端口号&#xff08;表中对应字段port&#xff09;&#xff0c;要求host 和…

[转载] Java获取泛型T的类型 T.class

参考链接&#xff1a; Java中的抽象 import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; public class Main{ public static void main(String[] args) { Foo<String> foo new Foo<String>(){}; // 在类的外部这样获取 Type type ((…

自定义控件---重写Listbox实现item图标变换和item点击事件

博客开通有一阵了&#xff0c;就是没有时间写&#xff0c;遗憾啊。&#xff01; 这几天做了个排序的自定义控件&#xff0c;在listbox item里放是button 并支持图标的交替变换 效果如下&#xff1a; 把代码贴上&#xff1a;1using System; 2using System.Collections.…

[转载] Spring面试题整理

参考链接&#xff1a; Java中的动态方法Dispatch和运行时多态 Spring面试题整理 2018年03月07日 21:11:46 hrbeuwhw 阅读数&#xff1a;49116 Spring 概述 1. 什么是spring? spring 是个Java企业级应用的开源开发框架。Spring主要用来开发Java应用&#xff0c;但是有…

ansible: Linux批量管理神器

我们已经知道&#xff0c;基于集群可实现服务器横向扩展slace out。可是&#xff0c;当上百台主机集合成共同为一个站点提供web页面访问的形式时&#xff0c;怎么管理整个集群体呢&#xff1f; 一些小伙伴大概听说过pxe等可实现自动安装系统。可是&#xff0c;要我们一台一台主…

[转载] Python numpy函数:all()和any()比较矩阵

参考链接&#xff1a; Python中的any和all 数组元素的比对&#xff0c;我们可以直接使用“”进行比较&#xff0c;比如&#xff1a; 但是当数组元素较多时&#xff0c;查看输出结果便变得很麻烦&#xff0c;这时我们可以使用all&#xff08;&#xff09;方法&#xff0c;直接…

MySQL初识-架构-安装-初始化-连接-管理工具-数据文件

MySQL架构和结构分析 官方架构图 内部组件结构图 MySQL安装方式 MySQL初始化 MySQL工作模式及常用命令 交互式模式&#xff1a;mysql> 1234567891011121314# 交互式模式下的客户端命令mysql> help # 获取命令帮助 mysql> \? # 同上 mysql> \c # 取消命令执行 mysq…

[转载] Java基础——关联、聚合、组合

参考链接&#xff1a; Java中的关联 | 组合和聚合 一.引言 其实自己也不知道&#xff0c;在需求设计、架构设计、开发阶段是否真正需要弄明白“关联、聚合、组合”。原本计划这篇博文写“继承“和”多态”&#xff0c;但是一翻阅资料&#xff0c;基本上都会把“继承”和“组…

[转载] WSDL2Java详细使用说明【官方最全说明】

参考链接&#xff1a; Java中的this说明 WSDL to Java 命名 wsdl2java - 获取WSDL文档并生成完全带注释的Java代码&#xff0c;并实现相关服务。 概要 用例 : wsdl2java -fe|-frontend <front-end-name> -db|-databinding <data-binding-name> -wv <…

mdm.Dialogs.promptModal()使用

这是prompt的扩展&#xff0c;提供了更多的功能&#xff0c;比如可以添加其他按钮和图标import mdm.*;mdm.Application.init(this, onInit);function onInit():void {// 启动程序...}quit.addEventListener(MouseEvent.CLICK,quitProgram);function quitProgram(evt:MouseEvent…

[转载] JAVA 构造函数及其重载

参考链接&#xff1a; Java重载Overload public class Student{ public int stuId; public String stuName; public int stuAge; public int stuScore; public Student(){ } public Student(int sId,String sName){ stuId sId; sName stuName; } public Student(int sld,S…

学生机房虚拟化(十)系统操作设计实现

引入&#xff1a; 在前篇思路的指导下&#xff0c;进行了为期三个星期的调试最终建立了一个初步成熟的&#xff0c;具有亲和力的配置界面&#xff0c;现在此虚拟系统已经初步部署了一个机房&#xff0c;用来学生日常上课。在本篇中&#xff0c;本人并不试图去花篇幅讲解彼此之间…

[转载] java之重写toString

参考链接&#xff1a; Java程序的输出| 重写Override 1.toString()就是是重写&#xff0c;对于一般的对象来说都会有这个方法&#xff0c;其实这个方法的目的&#xff0c;主要就是将对象按字符串的方式输出出来&#xff1a;打个比方&#xff0c;比如一个People类&#xff0c;里…

Gson的使用,对于不需要html escape的情况的处理

引入&#xff1a; 虽然是小问题&#xff0c;但是我还是需要记录下&#xff0c;我们知道&#xff0c;Google提供了一个Gson框架让我们高效的吧普通对象&#xff08;一般VO为佳&#xff09; 和json字符串之间进行互转。因为转换多数是和浏览器打交道的&#xff0c;所以一般默认的…

[转载] Java 重写paint绘图

参考链接&#xff1a; 用Java重写Override 感谢原文&#xff1a;https://zhidao.baidu.com/question/260060153.html 这个方法需要注意的地方不多&#xff0c;也就是重写时&#xff0c;先调用 super.paint(g) 方法 paint方法不需要编写代码调用&#xff0c;只需要重写。 其他…

教你如何进入有密码的 XP 系统(下)

自动登录时禁用Shift键 当使用自动登录功能时&#xff0c;用户可通过按住Shift键忽略登录进程&#xff0c;输入其他用户名及密码进入电脑。该技巧可以禁用自动登录时的Shift键功能。操作步骤如下&#xff1a;打开“注册表编辑器”&#xff0c;找到[HKEY_LOCAL_MACHINE\Softwar…

[转载] 2020最新Java面试题,常见面试题及答案汇总

参考链接&#xff1a; Java程序的输出| 18(重写Override) 发现网上很多Java面试题都没有答案&#xff0c;所以花了很长时间搜集整理出来了这套Java面试题大全&#xff0c;希望对大家有帮助哈~ 博主已将以下这些面试题整理成了一个Java面试手册&#xff0c;是PDF版的。 关注…

【心随笔】叙述你成功完成一件事情的方法

一、situation 先描述你曾经处于的困难状况 二、task / target 说一说你是怎样做出打算的 三、action / attitude 告诉别人你做出的行动 四、result 最后获得了怎样的成绩转载于:https://www.cnblogs.com/tnxlvlxy/p/7806142.html