栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java工具类Result

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java工具类Result

Java工具类Result

Result:(下面写了两种Result类的编写方式,这两种的使用方法在最后面),最主要的功能就是为了向前端发送数据的时候能够更高效快捷,编写代码如下:

首先编写一个枚举类
public enum Status {
    OK(200,"请求成功"),
    SYSTEM_ERROR(101,"系统异常"),
    SQL_ERROR(109,"SQL语句异常");
    ;
    //状态码
    private Integer code;
    //错误信息
    private String message;
    //构造器
    Status(Integer code,String message){
        this.code=code;
        this.message=message;
    }
    //只需要添加get方法就行
    public Integer getCode() {
        return code;
    }
    public String getMessage() {
        return message;
    }

    @Override
    public String toString() {
        return code+":"+message;
    }
}
Result类编写方式一:
public class R {
    //状态码
    private Integer status;
    //错误的状态信息
    private String message;
    //数据
    private T data;

    //get方法:获取状态码
    public Integer getStatus() {
        return status;
    }
    //get方法:获取错误状态信息
    public String getMessage() {
        return message;
    }
    //get方法:获取数据内容
    public T getData() {
        return data;
    }
    
    private R(Integer status,String message,T data){
        this.status=status;
        this.message=message;
        this.data=data;
    }
    private R(Integer status,String message){
        this.status=status;
        this.message=message;
    }
    private R(String message){
        this.message=message;
    }
    
    //下面就是根据需要返回不同参数格式的方法
    
    public static  R buildR(Status status,String message,T data){
        return new R(status.getCode(),message,data);

    }

    
    public static  R buildR(Status status,String message){
        return new R(status.getCode(),message);
    }
    
    public static  R buildR(Status status,T data){
        return new R(status.getCode(),status.getMessage(),data);
    }
    
    public static  R buildR(Status status){
        return new R(status.getCode(),status.getMessage());
    }
}
Result类编写方式二:

public class R1 {
    private static Integer status;//状态码
    private static String message;//错误的的状态信息
    private T data;
    //构造器私有化
    private R1(){};

    //下面的方法,根据开发需求添加即可
    //请求成功调用此方法
    public static R1 OK(){
        R1 r1 = new R1();
        status=Status.OK.getCode();
        message=Status.OK.getMessage();
       return r1;
    }

    //系统异常调用此方法
    public static R1  SYSTEM_ERROR(){
        R1 r1 = new R1();
        status=Status.SYSTEM_ERROR.getCode();
        message=Status.SYSTEM_ERROR.getMessage();
        return r1;
    }

    //SQL语句异常调用此方法
    public static R1  SQL_ERROR(){
        R1 r1 = new R1();
        status=Status.SQL_ERROR.getCode();
        message=Status.SQL_ERROR.getMessage();
        return r1;
    }

    //传数据的方法
    public R1 data(T data){
        this.data= data;
        return this;
    }

    //toString方法
    @Override
    public String toString() {
        return "R1{" +
                "data=" + data +";"+
                "status=" + status +";"+
                "message=" + message +
                '}';
    }
将上面的枚举和工具类Result定义好后,下面就可以使用了 Result类编写方式一的用法:
@Controller
@RequestMapping("/AdsController")
public class AdsController {
    @ResponseBody
    @RequestMapping("/getAdsByType.action")
    public R getAdsByType(Integer adTypeId) throws SQLException {
         //下面的Object可以是任何类型的数据,也可以是数组或者集合
        return R.buildR(Status.OK,Object);
    }

}
 
Result类编写方式二的用法: 
@Controller
@RequestMapping("/workers")
public class WokeresController {
    @ResponseBody
    @RequestMapping("/getWorkerByGroupPage.action")
    public R1 getWorkerByGroupPage(int currentPage, int size) throws SQLException {
       //R1.OK() --->R1调用方法OK(),表示调用枚举类ok的对象 --->返回的也是一个R1对象;
       //.data()--->这里的意思是上面返回的R1对象调用了方法.data()--->这个时候返回的还是一个R1对象;
       //由于上一行还是返回的R1对象,所以还可以在后面又去调用.data()。以此类推,后面可以无限制调用.data()方法,并且data用泛型修饰,所以可以根据开发需求调用即可对应的个数即可
        return R1.OK().data("集合数据").data("数组数据").data("name=zengyuqiang");
    }
}
转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号