美文网首页
parameterizedType.getActualTypeA

parameterizedType.getActualTypeA

作者: 勿忘心安_GO | 来源:发表于2018-01-30 17:20 被阅读0次

使用Gson结合泛型解析数据时,用到了这么一个方法 parameterizedType.getActualTypeArguments()[0]
那么它是什么意思呢?

                            T model = null;
                            try {
                                Gson gson = new Gson();
                                ParameterizedType parameterizedType = (ParameterizedType) requestCallBack.getClass().getGenericSuperclass();
                                Type type = parameterizedType.getActualTypeArguments()[0];//获得超类的泛型参数的实际类型
                                model = gson.fromJson(result, type);
                                requestCallBack.onSuccess(result, model);
                            } catch (JsonSyntaxException e) {
                                requestCallBack.OnFailure(e);
                            }

getClass().getGenericSuperclass()返回表示此 Class 所表示的实体(类、接口、基本类型或 void)的直接超类的 Type,然后将其转ParameterizedType。
getActualTypeArguments()返回表示此类型实际类型参数的 Type 对象的数组。
[0]就是这个数组中第一个了,简而言之就是获得超类的泛型参数的实际类型。
本例中即为获得T的type。

相关文章

网友评论

      本文标题:parameterizedType.getActualTypeA

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