Java 封装统一的 Result Model 案例 本文主要介绍了 Java 封装统一的 Result Model 案例,具有很好的参考价值,希望对大家有所帮助。在开发过程中,有时候会需要使用错误码+错误信息的形式,来返回某些业务操作的错误结果信息,来代替效率较低的异常传递。这样就需要封装一个统一的 Result model 作为返回值,代替直接返回数据等结果。 定义错误码 在定义错误码时,错误信息接口错误信息接口错误码可能是 String、Integer、Long 等类型,也可能是 enum 类型。因此这里使用泛型来代替,错误码类型,可以提高灵活性。也可以通过枚举直接实现 CodeMessage 接口。 public interface CodeMessage<C>{ C getCode(); String getMessage(); } 实现 Result Model 这里定义的是 service 层的 Result。有时候在 controller 层只会作一些简单的参数校验,在 service 层会作进一步的校验,如果 controller 中需要统一返回一个 JsonResult,可以将 ServiceResult 作一个简单的转换器进行转换。 public class ServiceResult<T, C> implements Serializable { public static final CodeMessage<String> SUCCESS = new DefaultMessage<>("00000000", "success"); private T data; private CodeMessage<C> message; private boolean isSuccess; ... } ServiceResult 的使用 ServiceResult 提供了多种构造方法,可以根据需要选择合适的构造方法。例如,可以使用 success() 方法来构造一个成功的结果,或者使用 error() 方法来构造一个错误的结果。 public static <D, C> ServiceResultBuilder<D, C> success() { ServiceResultBuilder<D, C> builder = builder(); return builder.isSuccess(true); } public static <D, C> ServiceResultBuilder<D, C> success(CodeMessage<C> codeMessage) { ServiceResultBuilder<D, C> builder = builder(); return builder.isSuccess(true).code(codeMessage.getCode()).message(codeMessage.getMessage()); } public static <D> ServiceResult<D, String> success(D data) { ServiceResultBuilder<D, String> success = success(SUCCESS); return success.data(data).build(); } public static <D, C> ServiceResult<D, C> error(CodeMessage<C> codeMessage) { ServiceResultBuilder<D, C> builder = builder(); return builder.isSuccess(false).code(codeMessage.getCode()).message(codeMessage.getMessage()).build(); } public static <D, C> ServiceResultBuilder<D, C> error() { ServiceResultBuilder<D, C> builder = builder(); return builder.isSuccess(false); } 总结 本文主要介绍了 Java 封装统一的 Result Model 案例,通过定义错误码和实现 Result Model,提供了一种灵活的错误处理机制,可以帮助开发者更好地处理错误信息。




























- 粉丝: 7
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- big-data-cloudera-hadoop.pdf
- 商业大楼无线接入网络解决方案.doc
- rs转接usb接口转换器的全面设计方案论文封面.doc
- 东北农业大学“十二五”网络教学建设规划.doc
- 它开启了中国大数据时代.docx
- 重庆号线通信系统初步研究设计技术要求.doc
- 有限公司ERP软件设计方案书仓库管理.doc
- 一种纤维摩擦因数求解算法设计方案.doc
- 小议增值税的项目管理设计.doc
- 单片机-智能交通灯控制系统方案设计书[单片机课程方案设计书].doc
- 单片机电动车里程记录仪设计方案.doc
- 计算机系统概述课件讲解.pptx
- 图书馆计算机病毒防治措施的思考.doc
- 大数据时代计算机网络信息安全防护策略探讨.docx
- 可见光通信LiFi标准白皮书范本.doc
- 大学设计方案(方案)校园网络安全问题及对策研究报告.doc



- 1
- 2
前往页