Java:如何根据对象的类型动态创建指定类型的数组?
我想获取一个传递的列表,该列表我知道是同构的,并从中创建一个与其中的元素类型相同的数组。
就像是…
List<Object> lst = new ArrayList<Object>;lst.add(new Integer(3));
/// somewhere else ...
assert(my_array instanceof Integer[]);
回答:
转换将在运行时发生,而类型在编译时丢失。因此,您应该执行以下操作:
public <T> T[] toArray(List<T> list) { Class clazz = list.get(0).getClass(); // check for size and null before
T[] array = (T[]) java.lang.reflect.Array.newInstance(clazz, list.size());
return list.toArray(array);
}
但是请注意,上面的第三行可能会引发异常-它不是类型安全的。
以上是 Java:如何根据对象的类型动态创建指定类型的数组? 的全部内容, 来源链接: utcz.com/qa/421413.html