一尘不染

我不能在Java中创建通用数组类型的原因是什么?

java

Java不允许我们这样做的原因是什么

private T[] elements = new T[initialCapacity];

我可以理解.NET不允许我们这样做,因为.NET中的值类型在运行时可以具有不同的大小,但是在Java中,各种T都是对象引用,因此具有相同的大小(如果我错了纠正我)。

是什么原因?


阅读 599

收藏
2020-02-27

共1个答案

一尘不染

这是因为Java的数组(与泛型不同)在运行时包含有关其组件类型的信息。因此,在创建数组时必须知道组件类型。由于您不知道T运行时是什么,因此无法创建数组。

2020-02-27