Java泛型对象在http请求和响应对象中的封装

2024-10-09 11:00:18 浏览数 (4)

Java泛型对象在http请求和响应对象中的封装

代码语言:javascript复制
public class MySystemBaseResVo<T> {   //注意:类的后面需要带上<T>,否则数据无法封装
    private String err_no;
    private String err_tips;
    private T data;

    public String getErr_no() {
        return err_no;
    }

    public void setErr_no(String err_no) {
        this.err_no = err_no;
    }

    public String getErr_tips() {
        return err_tips;
    }

    public void setErr_tips(String err_tips) {
        this.err_tips = err_tips;
    }

    public T getData() {
        return data;
    }

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


//发起请求封装到 T泛型类中
String resultJsonData = HttpClientV2Util.doPostForJson(url, json);

        MySystemBaseResVo baseResVo = JSON.parseObject(resultJsonData, MySystemBaseResVo.class);
        if(baseResVo.getData() != null) {
            T resp = JSON.parseObject(baseResVo.getData().toString(), responseClass);
            baseResVo.setData(resp);
        }
        

//在具体使用的类中强制转换为 具体的实现类
if(baseResVo.getData() != null) {
    //匹配
    if (baseResVo.getData() instanceof MySettingResVo) {
        MySettingResVo mySettingResVo = (MySettingResVo) baseResVo.getData();
        logger.info("mySettingResVo=[{}]",GsonUtils.toJson(mySettingResVo));
    }else if(baseResVo.getData() instanceof MySystemBaseResVo){
        MySystemBaseResVo mySystemBaseResVo = (MySystemBaseResVo) baseResVo.getData();
        logger.info("mySystemBaseResVo=[{}]",GsonUtils.toJson(mySystemBaseResVo));
    }
}

0 人点赞