java泛型方法的封装

leavegee 发布于 2016/02/23 15:45
阅读 1K+
收藏 0

【Gopher China万字分享】华为云的Go语言云原生实战经验!>>>

List<BannerInfo> retList = gson.fromJson(gson.toJson(res.getBInfo()),
                        new TypeToken<List<BannerInfo>>() {
                        }.getType());
这段代码如何封装成一个泛型的方法?
其中res.getBInfo()是一个Object[] 数组.
方法里我需要传入Object[] 和 BannerInfo.class
如何返回List<BannerInfo>

封装完后类似于
public <T> List<T> getBeanList(Object[] objs,Class<T> clazz){
Gson gson = new Gson();
List<T> retList = gson.fromJson(gson.toJson(objs),
new TypeToken<List<T>>() {
}.getType());
return retList;
}
但是这个方法是错误的.返回的List里面并不是T类型.
请各位java大神,帮忙看看. 最好是实际试验一下.
加载中
0
Kiss_Coder
Kiss_Coder

返回List搞不定,返回数组行吗?代码如下:

    public static <T> T getBeanList(Object[] objs, Class<T> clazz) {
    Gson gson = new Gson();
    T retList = gson.fromJson(gson.toJson(objs), clazz);
    return retList;
    }
    
    public static void main(String[] args) {
    Res res = new Res();
    getBeanList(res.getBInfo(), BannerInfo[].class);
    }

0
vvtf
vvtf

我不知道new TypeToken<List<T>>() {
}.getType())这个是什么,

但是你只要把这个当成参数传进去就OK了。


public <T> List<T> getBeanList(Object[] objs,TypeToken tpyeToken){

Gson gson = new Gson();
List<T> retList = gson.fromJson(gson.toJson(objs), tpyeToken.getType());
return retList;
}
返回顶部
顶部