美文网首页
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