gpt4 book ai didi

java - 为什么 Java 中的数组不能进行类型删除?

转载 作者:行者123 更新时间:2023-12-01 17:50:18 25 4
gpt4 key购买 nike

我注意到我们无法在 Java 中创建泛型类型的数组,如下所示:

public class ExampleClass<G> {
private G[] genericArray = new G[arraySize];
}

我读到这是由于 Java 使用类型删除处理泛型的方式造成的。我对类型删除的理解是,泛型只是被最具体的父类(super class)容器所替换 - 因此,如果我们不提供绑定(bind),G 的每个实例都将被 Object 替换。

为什么不能使用数组来完成此操作,创建一个 Object 类型的数组?

最佳答案

如果允许这样做,并且将 G 删除为 Object,则以下内容将不起作用:

ExampleClass<String> foo = new ExampleClass<>();
String[] array = foo.genericArray;

因为genericArray将是一个Object[],而不是String[]

关于java - 为什么 Java 中的数组不能进行类型删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com