首页 >Java >java教程 >为什么我无法在 Java 中创建 LinkedList 数组?

为什么我无法在 Java 中创建 LinkedList 数组?

Susan Sarandon
Susan Sarandon原创
2024-10-27 01:42:03987浏览

Why Can't I Create an Array of LinkedLists in Java?

无法在 Java 中实例化 LinkedList 数组

在此主题中,开发人员在尝试用 Java 创建 LinkedList 数组时遇到了挑战将值存储在稀疏矩阵中。错误消息“无法创建 LinkedList 的通用数组”提示两个关键问题:

  1. 此错误的根本原因是什么?

    根本原因在于 Java 对创建泛型数组的限制非原始类型。泛型是 Java 5 中引入的类型安全机制,用于防止运行时 ClassCastException。当声明泛型类型数组时,例如 LinkedList,编译器需要显式类型转换,以使 Java 知道所创建的数组的特定类型。

  2. 为什么该类型在数组声明中可接受,但在创建时不可接受?

    数组声明使用原始类型 LinkedList[],它不指定泛型类型参数。原始类型是无类型的,并且不强制类型安全。然而,在实例化数组时,编译器要求提供特定的类型参数,这就是错误发生的地方。

解决方案:

要解决此问题,必须执行类型转换。更正后的代码应如下所示:

myMatrix = (LinkedList<IntegerNode>[]) new LinkedList<?>[numRows];

强制转换 (LinkedList[]) 显式通知编译器正在创建的数组是包含 IntegerNode 元素的 LinkedList 数组。这允许通用数组被正确实例化。

以上是为什么我无法在 Java 中创建 LinkedList 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!

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