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