首页  >  文章  >  Java  >  以下是根据您的文章提出的一些问题式标题: * 为什么我不能在 Java 中创建通用的 LinkedList 数组? * 如何克服泛型擦除并在 Java 中创建 LinkedList 数组

以下是根据您的文章提出的一些问题式标题: * 为什么我不能在 Java 中创建通用的 LinkedList 数组? * 如何克服泛型擦除并在 Java 中创建 LinkedList 数组

DDD
DDD原创
2024-10-28 12:08:30295浏览

Here are a few question-style titles based on your article:

* Why Can't I Create a Generic Array of LinkedLists in Java?
* How to Overcome Generics Erasure and Create an Array of LinkedLists in Java
* Java's Limitation: Why Direct Creation of a Generic

解决创建 LinkedList 数组时的错误

在 Java 中,无法直接创建通用的 LinkedList 数组。这是由于 Java 语言的限制(称为“泛型擦除”)造成的。编译 Java 代码时,编译器会删除 LinkedList 等泛型类型的类型信息。因此,Java 虚拟机 (JVM) 在执行代码时只能看到像 LinkedList 这样的原始类型。

解决问题

要解决此问题,您可以转换类型并进行如下声明:

<code class="java">myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];</code>

通过将数组转换为特定类型,您明确告诉编译器您打算将其作为包含 IntegerNode 对象的 LinkedList 数组。声明中的通配符 (?) 表示 LinkedList 数组中元素的具体类型是无关紧要的,只要它们是任何类型的对象即可。

声明兼容性说明

LinkedList[] myMatrix 的声明;与代码中的赋值语句兼容,因为编译器最初假定泛型类型参数是未知类型。虽然您无法直接实例化通用数组,但编译器允许进行声明以适应在运行时创建 LinkedList 数组的可能性。

以上是以下是根据您的文章提出的一些问题式标题: * 为什么我不能在 Java 中创建通用的 LinkedList 数组? * 如何克服泛型擦除并在 Java 中创建 LinkedList 数组的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn