[转载] 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;// 没有访问权限
[转载] Java对返回值的封装相关推荐
- java 接口 返回值_java api返回值的标准化详解
api返回值的标准化 例如 {"status":200,"message":"操作成功","data":"{\ ...
- Java 统一返回结果集封装
Java 统一返回结果集封装 封装实体类 调用 封装实体类 /*** 统一返回结果集实体类* @param <T> 返回数据对象*/ @Data public class ErrorMsg ...
- Java方法返回值类型归纳
Java方法返回值类型归纳 我们再调用一个方法时,将方法体内产生的一条数据输出到方法体外使用,这条数据我们叫做返回值. 返回值类型分为两大类:第一类,无返回值类型:void.第二类,有返回值类型,返回 ...
- Java 前后端分离业务封装 对后端返回值进行封装 PageVO封装
遇到前后端业务需要不一致时对Controller返回结果进行封装 后端返回结果 前后端分离后 web 端要求结果 {"counts": 2694,"pagesize&qu ...
- dwr java有返回值但是js获取不到返回值_一探究竟:Java反射效率低的原因到底在哪?...
预备知识 了解 Java 反射基本用法 看完本文可以达到什么程度 了解 Java 反射原理及 Java 反射效率低的原因 文章概览 我们在 Java 开发中,难免会接触到反射,而在一些框架中,反射的运 ...
- java 内部类 返回值_Java学习笔记:形参和返回值、内部类、常用API
形参和返回值 类名作形参 public void useCat(Cat c){ c.eat(); } CatOperator co=new CatOperator(); Cat c=new Cat() ...
- 去除java接口返回值中含有的html、js、css标签,获取纯文字
现在在做政府网站,网站里有很多公开信息和政务咨询的新闻,现在需要做新闻的RSS订阅功能,其中有一项是需要处理文章页的内容.我们后台添加编辑文章使用的是编辑器,文章内容会带有很多html标签和css样式 ...
- java gettext返回值_012-关于EditText中的getText()方法的返回值类型以及string的转换问题(转)...
EditText中的getText()方法的返回值为CharSequence,如果我们想要获得string类型数据的话,需要在后边加上.toString 另外,String类型转为int:Intege ...
- java 内部类 返回值_Java基础第10天+形式参数和返回值的问题、包、导包、权限修饰符、常见的修饰符、内部类(局部内部类,成员内部类,匿名内部类)...
1:形式参数和返回值的问题(理解) (1)形式参数: 类名:需要该类的对象 抽象类名:需要该类的子类对象 接口名:需要该接口的实现类对象 (2)返回值类型: 类名:返回的是该类的对象 抽象类名:返回的 ...
最新文章
- 〖Linux〗使用Qt5.2.0开发Android的NDK应用程序
- 对话迈克尔·乔丹:太多人关注个体智能,而不关注体系
- SQL Server - select语句练习
- centos mysql权限不够_centos执行文件时权限不够怎么解决_网站服务器运行维护,centos...
- 后端不哭!最新优化性能经验分享来啦
- DCEP | 农行将上线数字人民币刷脸支付
- 《深入理解Windows操作系统》笔记1
- 微信公众平台后台接入简明指南
- html下拉菜单几种方式,html下拉菜单的实现方式
- .Net Core 使用Swagger,且使用自定义UI(Knife4jUI)
- Riverbed发布业界最全面的数字体验管理解决方案
- Codeforce 1296 C. Yet Another Walking Robot
- haproxy+rabbitmq镜像集群
- iPhone照片格式怎么改?
- EOS基础全家桶(九)官方测试网的使用
- 读书笔记之:C++ Primer (第4版)及习题(ch12-ch18)
- 计算机按键被粘了一样,电脑总是自动重复按键盘上的一个键 经验告诉你该这样...
- 六牛php工程师,童六牛——安徽工业大学材料学与工程学院教授
- 数仓搭建——DWD层
- donet 微服务开发 学习-Docker环境搭建 win7 docker 环境配置
热门文章
- cglib动态代理导致注解丢失问题及如何修改注解允许被继承
- linux apple开发环境,Objective-C开发环境设置
- matlab imread_MATLAB图像处理:29:在几何变换输出中指定填充值
- lcd像素点密度_【教程】设置添加LCD密度(DPI)设置
- 谷歌浏览器怎么重发请求_Googel 浏览器 模拟发送请求工具--Advanced REST Client
- 存储器是计算机的记忆装置,存储器(Memory)
- go validator使用教程
- linux一键安装node+npm
- 智慧园区-楼宇建模技巧之【建楼篇】
- 如何恢复osd的auth表中的权限