java中泛型用得比较广,具体含义我就不多说了,那什么是泛型方法?又怎么调用呢?
泛型方法是在调用方法的时候指明泛型的具体类型。
具体声明如下:
/**
* 解析从服务器拉下来的Json
* 这个方法主要用于解析Response 中的数据,重点是data 下,并且将字符串型数据转化为Model 方便操作
*
* @param content
* 拉取下来的json 内容
* @param cls
* data下的数据形式,用于动态封装。
* @return 封装过的 List 数据
*
*/
public static <T> List<T> handleResponseList(final String content,Class<T> cls) throws JsonParseException, JsonMappingException, IOException {
List<T> list = null;
JsonNode root = objectMapper.readTree(content).path("data");
if(root.isArray()){
list = new ArrayList<T>();
for(JsonNode node:root){
T tmp = objectMapper.readValue(node.toString(), cls);
list.add(tmp);
}
}
return list;
}
其中 static 后的<T> 的意义:声明该方法持有一个类型T,也可以理解为声明该方法为泛型方法。
List<T> :该方法返回一个泛型T的list数组。
Class<T> :用来创建泛型T代表的类型;
调用
List<User> list = handleResponseList(content2, User.class);
那我们为什么要使用泛型方法呢?
泛型类要在实例化的时候就可以指明类型,你如果想换一种类型,不得不重新new一次,那这样就不是很灵活;
而泛型方法可以在调用的时候指明类型,更加灵活。