首页 >Java >java教程 >为什么不能在 Java 中创建通用数组?

为什么不能在 Java 中创建通用数组?

Barbara Streisand
Barbara Streisand原创
2024-11-03 10:39:03920浏览

Why Can't You Create Generic Arrays in Java?

泛型数组创建错误:探索替代方案

尝试在 Java 中创建泛型类的数组(如问题中所示),将会不可避免地会遇到错误。 Java 缺乏对此功能的支持,因此需要替代方法。

考虑使用集合

使用集合代替数组可以有效解决此约束。例如,ArrayList 可以存储对象列表,提供管理数据的灵活性。

另一个选项:辅助类

另一个可行的解决方案涉及创建辅助类班级。例如,名为 MyObjectArrayList 的类可以扩展 ArrayList。随后,可以创建 MyObjectArrayList 实例的数组,从而规避该问题。

理解禁令

Java 中对泛型数组的禁令深深植根于该语言的设计中。以下示例说明了证明此限制合理的潜在场景:

<code class="java">List<String>[] lsa = new List<String>[10]; // illegal
Object[] oa = lsa;  // OK because List<String> is a subtype of Object
List<Integer> li = new ArrayList<Integer>();
li.add(new Integer(3));
oa[0] = li; 
String s = lsa[0].get(0);</code>

如果没有此限制,此类代码可能会导致意外行为,例如将整数列表分配给用于字符串的数组。

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

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