【发布时间】:2012-08-27 23:00:48
【问题描述】:
我希望重新发明轮子,并在 Java 中创建自己的通用数组支持列表类,类似于 ArrayList。是的,我知道这很愚蠢,但这是一种学术追求。问题是你不能实例化一个泛型类型的数组
public class MySuperCoolList<E> {
E[] array;
public MySuperCoolList<E> () {
array = new E[10]; // ERROR: cannot do this!
}
}
这个问题肯定有解决方案,因为 Java 的 ArrayList 也在做同样的事情。问题是,怎么做?如何实例化泛型类型E 的数组?以及它是如何在 ArrayList 中完成的(如果有人知道的话)?
【问题讨论】:
-
ArrayList在内部将其元素保存在Objects (Object[]) 的数组中。不可能(在事先不知道类型的情况下)创建泛型数组。 -
你可能有 C# 背景?
标签: java arrays generics arraylist