利用泛型实现通用的list和array转换

简介: 这里利用了Array.newInstance(..)方法,但还有一个问题,当List的长度为0的时候,是获得不了T的具体class的。好在长度为0的数组没有意义,所以干脆返回了null。 代码如下: public static T[] getArray(List collection) {if (collection == null || collection.

这里利用了Array.newInstance(..)方法,但还有一个问题,当List的长度为0的时候,是获得不了T的具体class的。好在长度为0的数组没有意义,所以干脆返回了null。

代码如下:

    public static <T> T[] getArray(List<T> collection) {
if (collection == null || collection.size() == 0)
return null;
@SuppressWarnings("unchecked")
T[] tArray = ((T[]) Array.newInstance(collection.get(0).getClass(), 0));
return collection.toArray(tArray);
}



目录
相关文章
|
Java
Java 中数组Array和列表List的转换
Java 中数组Array和列表List的转换
88 0
|
数据处理 Python
|
7月前
|
Java 程序员
Java集合框架:List、Set、Map类型及泛型详解
Java集合框架:List、Set、Map类型及泛型详解
100 0
|
5月前
|
存储
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
数据存储之数组的特点,长度固定,适应变化需求,集合类特点是空间可变,ArrayList泛型,ArrayList<String> array = new ArrayList<String>()
|
7月前
|
SQL XML Java
<foreach>元素中collection=list改成collection=array
<foreach>元素中collection=list改成collection=array
|
7月前
|
SQL IDE Java
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
MyBatis【问题 01】mapper传入array\collection\list类型的参数时报BindingException:Parameter ‘xx‘ not found问题复现及解决
206 0
lamada List对象属性值转数组array
lamada List对象属性值转数组array
105 0
|
安全 Java
Java之List集合的解析及泛型的概述
Java之List集合的解析及泛型的概述
113 0
|
Java
Java 数组(Array)与集合(List、ArrayList ...)的区别
Java 数组(Array)与集合(List、ArrayList ...)的区别
186 0
|
安全 C# 索引
C# 泛型集合和非泛型集合(List ArrayLIst)
C# 泛型集合和非泛型集合(List ArrayLIst)
109 0