美文网首页
Gson解析泛型数据类型

Gson解析泛型数据类型

作者: wasdzy111 | 来源:发表于2021-03-24 09:50 被阅读0次
image.png

Gson解析泛型类型:
Res<Data>
Type type = new TypeToken<Res<Data>>(){}.getType();
Res<Data> res = new Gson().fromJson("json数据",type);

//自定义解析 类似于TypeToken

  static abstract  class TypeRefrence<T> {
        Type type;
        public TypeRefrence() {
            //获得泛型类型
            Type genericSuperclass = getClass().getGenericSuperclass();
            ParameterizedType parameterizedType = (ParameterizedType) genericSuperclass;
            //可能有多个泛型A<T,V>
            Type[] types = parameterizedType.getActualTypeArguments();//获取到泛型个数
            if (null!=types&&types.length>0){
                type = types[0];
            }
        }

        public Type getType() {
            return type;
        }
    }

//使用 
//注意:{}  才能使用,有{}代表是匿名内部类;相当于动态创建了泛型指定的类
//没有   {}是创建对象
Type type = new TypeRefrence<Res<Data>>(){}.getType();
Res<Data> res = new Gson().fromJson("json数据",type);

相关文章

网友评论

      本文标题:Gson解析泛型数据类型

      本文链接:https://www.haomeiwen.com/subject/dqychltx.html