result类,公共返回类创建

aqihao aqihao     2022-12-08     147

关键词:

package com.deng.hongbao.base;
/**
* 先构建一个格式确定下来的Result类
* 然后构建一个常用的枚举类,内容可以根据项目自定义,查看ResultEnum
* 然后就是写一个返回的工具类ResultUtil
* 最后就是应用了,在Controller里边调用ResultUtil就可以了
*
* 还要考虑抛异常情况,就是当条件满足时,直接把信息抛给浏览器,比如未满18岁,返回浏览器"未成年"
* 建立一个handle包,建立一个ExceptionHandle类(或者XXServiceException类)
*再建立一myException包,建立一个serviceException类继承RuntimeException类

* */
public class Result<T> 
private Integer code;
private String msg;
private T data;

public Result()
super();


public Result(Integer code, String msg, T data)
this.code = code;
this.msg = msg;
this.data = data;


public Integer getCode()
return code;


public void setCode(Integer code)
this.code = code;


public String getMsg()
return msg;


public void setMsg(String msg)
this.msg = msg;


public T getData()
return data;


public void setData(T data)
this.data = data;


@Override
public String toString()
return "Result" +
"code=" + code +
", msg=‘" + msg + ‘‘‘ +
", data=" + data +
‘‘;



//------------------------------------

package com.deng.hongbao.base;

public enum ResultEnum
//这里是可以自己定义的,方便与前端交互即可
UNKNOWN_ERROR(-1,"未知错误"),
SUCCESS(0,"成功"),
USER_NOT_EXIST(1,"用户不存在"),
USER_IS_EXISTS(2,"用户已存在"),
DATA_IS_NULL(3,"数据为空"),
DENG_1(999,"发送人为空1111"),// 测试
;
private Integer code;
private String msg;


ResultEnum(Integer code, String msg)
this.code = code;
this.msg = msg;


public Integer getCode()
return code;


public String getMsg()
return msg;



//-------------------------------------
package com.deng.hongbao.util;

import com.deng.hongbao.base.Result;
import com.deng.hongbao.base.ResultEnum;

public class ResultUtil
/**成功且带数据**/
public static Result success(Object object)
Result result = new Result();
result.setCode(ResultEnum.SUCCESS.getCode());
result.setMsg(ResultEnum.SUCCESS.getMsg());
result.setData(object);
return result;

/**成功但不带数据**/
public static Result success()

return success(null);

/**失败**/
public static Result error(Integer code,String msg)
Result result = new Result();
result.setCode(code);
result.setMsg(msg);
return result;



//----------------------------------------------------------------

package com.deng.hongbao.handle;

import com.deng.hongbao.MyException.ServiceException;
import com.deng.hongbao.base.Result;
import com.deng.hongbao.util.ResultUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;

@ControllerAdvice
public class ExceptionHandle
private final static Logger logger = LoggerFactory.getLogger(ExceptionHandle.class);

@ExceptionHandler(value = Exception.class)//对哪个异常类进行捕获
@ResponseBody
public Result handle(Exception e)

if (e instanceof ServiceException)
ServiceException serviceException = (ServiceException) e;
return ResultUtil.error(serviceException.getCode(), serviceException.getMessage());
else
// 如果是系统异常或其它异常,记录在日志
logger.error("[系统异常] ", e);
return ResultUtil.error(-1, "未知错误!");



// 成功用ResultUtil抛出异常,但问题来了,这个异常类Exception,不能自定义ResultUtil的code,所以要自定义一个Exception


// ----------------------------------------------------------

package com.deng.hongbao.MyException;

import com.deng.hongbao.base.ResultEnum;

public class ServiceException extends RuntimeException

// 继承RuntimeException异常可以事物回滚,Exception只负责抛出,但不回滚事物

private Integer code;

public ServiceException(Integer code, String msg)
super(msg);// 由于RuntimeException继承了Exception,本身会有个msg文件,所以直接调用
this.code = code;


public ServiceException(ResultEnum resultEnum)
super(resultEnum.getMsg());
this.code = resultEnum.getCode();


public Integer getCode()
return code;


public void setCode(Integer code)
this.code = code;

公共资源类的封装

<?php/***公共资源类****/classCommon{/***通用的json返回数据*$codeint返回的错误码*$msgstring返回的错误信息*$dataarray返回的数组*/publicstaticfunctionEchoResult($code=0,$msg=‘‘,$data=array()){$result=array(‘code‘=>$code,‘msg‘=& 查看详情

如何实现只能由其封闭类创建的密封公共嵌套类?

】如何实现只能由其封闭类创建的密封公共嵌套类?【英文标题】:Howtoimplementasealed,publicnestedclassthatcanonlybecreatedbyitsenclosingclass?【发布时间】:2013-05-0213:26:22【问题描述】:目标我的目标是实现一个密封的、公共的嵌套类,它... 查看详情

私有类作为公共方法的返回类型

】私有类作为公共方法的返回类型【英文标题】:Privateclassasreturntypefrompublicmethod【发布时间】:2014-01-0320:21:53【问题描述】:为什么这是有效的?Foo.javapublicclassFoopublicBargetBar()returnnewBar();privateclassBar如果Bar是私有的,这个类的... 查看详情

springboot模板项目搭建:jwt工具类公共返回对象类(代码片段)

完整项目连接:使用idea创建springboot项目_杨咩咩-CSDN博客创建一个以后都可以使用的springboot后台项目,放入git中托管,后期创建别的项目时,直接拖下来,修改完项目名和包名时直接使用https://blog.csdn.net/yang139... 查看详情

Excel VBA 类属性返回公共长变量,但不是公共字符串变量

】ExcelVBA类属性返回公共长变量,但不是公共字符串变量【英文标题】:ExcelVBAClassPropertyreturningapubliclongvariable,butnotapublicstringvariable【发布时间】:2014-06-1115:49:35【问题描述】:这是我第一次使用面向对象的方法:希望对我有所... 查看详情

片段必须是公共静态类才能从实例状态正确重新创建

】片段必须是公共静态类才能从实例状态正确重新创建【英文标题】:Fragmentmustbeapublicstaticclasstobeproperlyrecreatedfrominstancestate【发布时间】:2017-01-1018:00:44【问题描述】:更新到最新的支持库后,compile\'com.android.support:appcompat-v7:24... 查看详情

片段 null 必须是公共静态类才能从实例状态正确重新创建

】片段null必须是公共静态类才能从实例状态正确重新创建【英文标题】:Fragmentnullmustbeapublicstaticclasstobeproperlyrecreatedfrominstancestate【发布时间】:2017-02-2002:15:20【问题描述】:我无法弄清楚为什么我的应用程序在调用getSupportFragm... 查看详情

beego公共方法返回json

...n-template,然后beego写api,平时写原生PHP习惯了,都会封装公共方法Error()/Success()什么的返回json,突然发现beego文档里只写了控制器返回json,而且比较麻烦于是,像往常一样,想做个公共文件,用来存放公共方法,开始还写了一个... 查看详情

如何在返回所有错误的同时使用 PHP laravel 中的公共类有选择地验证多个字段

】如何在返回所有错误的同时使用PHPlaravel中的公共类有选择地验证多个字段【英文标题】:HowtovalidatemultiplefieldsselectivelyusingacommonclassinPHPlaravelwhilereturningallerrors【发布时间】:2022-01-1413:29:50【问题描述】:刚开始我的第一个PHPla... 查看详情

iOS:我可以创建一个所有类(.h 和 .m)为公共的静态库吗?

】iOS:我可以创建一个所有类(.h和.m)为公共的静态库吗?【英文标题】:iOS:Canicreateastaticlibrarywithallclasses(.h&.m)aspublic?【发布时间】:2016-04-1009:17:18【问题描述】:我有一堆类想要与其他人分享,所以我想创建一个静态库,... 查看详情

Java:如何创建一个可以在包内子类化的公共类,同时防止外人继承?

】Java:如何创建一个可以在包内子类化的公共类,同时防止外人继承?【英文标题】:Java:Howtocreateapublicclassthatcanbesubclassedwithinpackage,whilepreventingoutsidersfrominheriting?【发布时间】:2018-12-1005:07:22【问题描述】:假设我正在编写一... 查看详情

抽象类,接口

抽象类  定义一个公共的基类(baseclass),而将特定的细节留给继承者来实现.由于抽象类没有为它所声明的所有方法都定义实现,所以使用new操作符是不可以直接创建它的实例的.要创建实例,就必须创建另一个扩展抽象类的类,并重... 查看详情

Laravel:从公共目录中的 php 脚本调用类方法

】Laravel:从公共目录中的php脚本调用类方法【英文标题】:Laravel:callclassmethodsfromphpscriptinpublicdirectory【发布时间】:2015-11-1212:04:45【问题描述】:我有一个view.blade.php,它调用一个wrapper.php,它为视图中的iframe返回一些值。我能... 查看详情

类封装

...的三步骤:1.自定义类。格式:class类名{  事物的公共属性使用成员变量描述。  事物的公共行为使用函数描述。}2.通过自定义类创建对象。格式:类名变量名= new类名();3.访问(设置)对象的属性或者调用对象的... 查看详情

c3p0数据库连接池使用--创建jdbctools公共类

packagecom.atguigu.jdbc;importjava.io.IOException;importjava.io.InputStream;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.PreparedStatement;importjava.sql.ResultSet;importjava. 查看详情

我不明白为啥一个类是“公共的”[重复]

】我不明白为啥一个类是“公共的”[重复]【英文标题】:Idon\'tunderstandwhyaclassis"public"[duplicate]我不明白为什么一个类是“公共的”[重复]【发布时间】:2015-07-1522:03:20【问题描述】:我开始学习C#,我来自C++背景。我应该... 查看详情

62单例模式(代码片段)

...饿汉式有三步:构造方法私有化创建当前类对象对外提供公共的访问方法将SingletonHungary对象暴露给外部packagecom.sutaoyu.single_test;publicclassSingletonHungary//1.构造方法私有化privateSingletonHungary()//2.创建当前类对象privatestaticSingletonHungarys=... 查看详情

springboot定义统一返回类

参考技术A①在主包目录下,首先新建一个common目录,用于存放这些公共方法等②在common目录下,新建一个枚举类,命名为ResCode.java③在common目录下,新建一个类,命名为ResultVO.java④使用示例输出为: 查看详情