首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

java泛型:通过自定义ParameterizedType实现参数化类型中类型参数的替换

需求说明 如果要动态构造一个泛型参数对象(ParameterizedType),guava提供的TypeToken工具可以部分实现这个功能: 比如下面这个例子(来自guava wiki TypeToken...,如果想根据一个已有的ParameterizedType对象替换其中的参数,上面的方法并不能实现。...实现这个需求最关键的就是要有一个ParameterizedType接口的实现类,有了这个实现类,你想怎么替换都成。...虽然 ParameterizedType接口方法也没几个,但如何自己写个ParameterizedTypeImpl呢? 别逗了,还真打算从头自己写一个啊,再说自己的写的敢用么?...) { ParameterizedType that = (ParameterizedType) o; if (this == that) {

4.6K80
您找到你想要的搜索结果了吗?
是的
没有找到

我眼中的Java-Type体系(1)1.ParameterizedType2.TypeVariable3.GenericArrayType4.Class5.WildcardType

它并不是我们平常工作中经常使用的 int、String、List、Map等数据类型,而是从Java语言角度来说,对基本类型、引用类型向上的抽象; Type体系中类型的包括:原始类型(Class)、参数化类型(ParameterizedType...Type体系 查看源码,Type接口下共有4个"儿子",每一个“儿子”代表着Java中的一种类型; 1.ParameterizedType 参数化类型,即泛型;例如:List、Map等带有参数化的对象...ParameterizedType源码 2.TypeVariable 类型变量,即泛型中的变量;例如:T、K、V等变量,可以表示任何类;在这需要强调的是,TypeVariable代表着泛型中的变量,而ParameterizedType...TypeVariable源码 3.GenericArrayType 泛型数组类型,用来描述ParameterizedType、TypeVariable类型的数组;即List[] 、T[]等; ?...为了解决泛型,JDK1.5版本开始引入Type接口;在此之前,Java中只有原始类型,所有的原始类型都是通过Class进行抽象;有了Type以后,Java的数据类型得到了扩展,从原始类型扩展为参数化类型(ParameterizedType

1.1K60
领券