我注意到我们无法在Java中创建通用类型的数组,如下所示:public class ExampleClass<G> { private G[] genericArray = new G[arraySize];}我已经读到这是由于Java使用类型擦除来处理泛型的方式所致。我对类型擦除的理解是,泛型仅被最特定的超类容器替换-因此,如果我们不提供限制,则每个的实例都G将替换为Object。为什么不能通过创建类型为array的数组来完成此操作Object?
1 回答
慕田峪4524236
TA贡献1875条经验 获得超5个赞
如果允许并G删除了Object,则以下操作将无效:
ExampleClass<String> foo = new ExampleClass<>();
String[] array = foo.genericArray;
因为genericArray将是一个Object[],而不是一个String[]。
添加回答
举报
0/150
提交
取消