Java不允许我们这样做的原因是什么
private T[] elements = new T[initialCapacity];
我可以理解.NET不允许我们这样做,因为.NET中的值类型在运行时可以具有不同的大小,但是在Java中,各种T都是对象引用,因此具有相同的大小(如果我错了纠正我)。
是什么原因?
这是因为Java的数组(与泛型不同)在运行时包含有关其组件类型的信息。因此,在创建数组时必须知道组件类型。由于您不知道T运行时是什么,因此无法创建数组。