当前位置 : 主页 > 编程语言 > 其它开发 >

泛型方法接受泛型返回值

来源:互联网 收集:自由互联 发布时间:2022-05-30
目录 前言 一、泛型通配符 二、代码 前言 对泛型的使用还不太熟悉,这里记录一下 业务场景是,使用HTTP发送请求,接受的参数不同。想封装一个工具方法。 提示:以下是本篇文章正

目录
  • 前言
  • 一、泛型通配符
  • 二、代码


前言

对泛型的使用还不太熟悉,这里记录一下
业务场景是,使用HTTP发送请求,接受的参数不同。想封装一个工具方法。


提示:以下是本篇文章正文内容,下面案例可供参考

一、泛型通配符
  • ?表示不确定的 java 类型
  • T (type) 表示具体的一个java类型
  • K V (key value)分别代表java键值中的Key Value
  • E (element) 代表Element
二、代码
@Component
public class PostUtil {
/**
     * 返回object对象
     * @param apiUrl 访问地址
     * @param o 返回的对象
     * @param tClass
     * @param <T>
     * @return
     */
    public <T> T doPostGetObj(String apiUrl, Object o, Class<T> tClass) {
        String requestJson = JSON.toJSONString(o);
        String resultData = HttpRequestHelper.doPost(apiUrl, requestJson);
        if (StringUtils.isNotBlank(resultData)) {
            JSONObject jsonObject = JSONObject.parseObject(resultData);
            log.info(jsonObject.toJSONString());
            JSONObject data = jsonObject.getJSONObject("data");
            if (data != null) {
                return JSONObject.toJavaObject(data, tClass);
            }
        }
        return null;
    }

    /**
     * 返回list列表数据
     * @param apiUrl 访问地址
     * @param paramObj 返回的对象列表
     * @param tClass
     * @param <T>
     * @return
     */
    public <T> List<T> doPostGetList(String apiUrl, Object paramObj, Class<T> tClass) {
        List<T>resultList = new ArrayList<>();
        String requestJson = JSON.toJSONString(paramObj);
        String resultData = HttpRequestHelper.doPost(apiUrl, requestJson);
        if (StringUtils.isNotBlank(resultData)) {
            JSONObject jsonObject = JSONObject.parseObject(resultData);
            JSONArray dataArray = jsonObject.getJSONArray("data");
            if (dataArray != null && dataArray.size() > 0) {
                for (int i = 0; i < dataArray.size(); i++) {
                    JSONObject arrayJSONObject =  dataArray.getJSONObject(i);
                    T t1 = arrayJSONObject.toJavaObject(tClass);
                    resultList.add(t1);
                }
                return resultList;
            }
        }
        return null;
    }

    /**
     * 返回单个对象
     * @param apiUrl 访问地址
     * @param t 返回的对象
     * @param <T>
     * @return
     */
    public <T> T doGet(String apiUrl, T t) {
        String resultData = HttpRequestHelper.doGet(apiUrl);
        if (StringUtils.isNotBlank(resultData)) {
            JSONObject jsonObject = JSONObject.parseObject(resultData);
            JSONObject data = jsonObject.getJSONObject("data");
            if (data != null) {
                return (T) JSONObject.toJavaObject(data, t.getClass());
            }
        }
        return null;
    }

上一篇:质数、质因数个数和约数个数的求解
下一篇:没有了
网友评论