Java有很多的高级特性,泛型是其中之一,泛型即参数化类型。关于泛型的概念,有很多文章都有介绍,这里就不再过多的介绍了。本文将从实战的角度,来看看泛型在实际项目中的使用
1 泛型在框架中的使用
泛型在框架中及为常见,我们在使用各种框架的时候,都会使用到泛型,具体看下面的例子。
1.1 集合框架中使用泛型
这是最常见的泛型的使用场景,比如下面的代码
List<String> list1 = new ArrayList<>();
List<Integer> list2 = new ArrayList<>();
list1和list2虽然都是列表类型,但是列表里面存的数据可以是String,可以是Integer,也可以是自定义类型。集合中存放的数据,在定义的时候不能确定是什么类型,只有当使用集合时,才能确定放什么类型的数据。所以在集合的定义中,就用泛型来代表集合里面的数据。
1.2 fastjson框架中使用泛型
alibaba的fastjson很多人应该都用过,fastjson很多地方也用到了泛型,比如将json字符串转成对象,如下的例子
// 将userStr字符串映射成UserDto类
String userStr = "{id: '123', name: '张三'}";
UserDto userDto = JSON.parseObject(userStr, UserDto.class);
JSON类中,对parseObject方法的定义,如下
public static <T> T parseObject(String text, Class<T> clazz) {
return parseObject(text, clazz);
}
parseObject方法中的参数传递用到了泛型,要把json字符串转成什么类,在定义的时候并不知道,只有在用到的时候,才知道具体的类型。
1.3 泛型使用场景总结