泛型方法如何实现泛型返回值类型?

2026-05-17 03:281阅读0评论SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计496个文字,预计阅读时间需要2分钟。

泛型方法如何实现泛型返回值类型?

目录+前言+一、泛型通配符+二、代码示例+前言+对泛型的使用还不够熟悉,这里记录一下+业务场景是,使用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; }


本文共计496个文字,预计阅读时间需要2分钟。

泛型方法如何实现泛型返回值类型?

目录+前言+一、泛型通配符+二、代码示例+前言+对泛型的使用还不够熟悉,这里记录一下+业务场景是,使用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; }