将Generic Arraylist转换为具有Generic Type的数组

时间:2015-10-31 20:27:08

标签: java arrays generics arraylist

我正在尝试使用ArrayList的内置Java方法将ArrayList转换为数组。但是,问题是Java将数组转换为类型对象的数组。我试图将其转换为类型T(泛型类型)的数组。我尝试将类类型传递给类的构造函数,使用它来构建数组,但我没有运气。我的代码如下。任何帮助将不胜感激:

String imageUrl = String.format("https://www.xxxxxx.com/va/public/render_image?image_id=%s", currentMerchItem.getMt_image_id());

new AsyncDownloadImage(viewHolder.imageview).execute(imageUrl);

2 个答案:

答案 0 :(得分:2)

ArrayList中有两个版本的toArray()方法 - 没有argumnets的方法,返回Object的数组(你使用的)和另一个,它作为参数获取你想要的数组类型返回:public <T> T[] toArray(T[] a)

所以你需要使用这个,如:lessThanPivot.toArray(data)

查看完整的javadoc here

答案 1 :(得分:2)

如果我的问题正确,我建议您使用List.toArray(T[])

示例String[]array = list.toArray(new String[list.size()]);

编译代码时会删除泛型,因此helper.array只返回一个对象[]。

我希望这会有所帮助。