java - 如何初始化我的通用数组?

标签 java android generics arraylist initialization

我想要一个 ArrayLists 数组:

ArrayList<MyClass>[] myArray;

我想用下面的代码初始化它:

myArray = new ArrayList<MyClass>[2];

但是我得到这个错误:

Cannot create a generic array of ArrayList<MyClass>

如何初始化它?

最佳答案

这在 Java 中严格来说是不可能的,而且自从它实现以来就没有出现过。

你可以像这样解决它:

ArrayList<MyClass>[] lists = (ArrayList<MyClass>[])new ArrayList[2];

这可能(实际上,它应该)产生警告,但没有其他方法可以绕过它。老实说,您最好创建一个 ArrayListArrayList:

ArrayList<ArrayList<MyClass>> lists = new ArrayList<ArrayList<MyClass>>(2);

后者是我推荐的。

关于java - 如何初始化我的通用数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11113095/

相关文章:

android - 即使启用了 USB 调试,ADB 也检测不到我的设备

android - 键盘锁管理器无法正常工作

java - 明确区分对象的不可变部分和可变部分是好的设计吗?

java - JAX-RS : Tomcat runs normally but root not found (404)

java - 根据其成员项的 'toString' 值按字母顺序对 Java 集合进行排序

java - 检查数组是否是回文

c# - 在 C# 中将参数传递给 Web 服务方法

java - Java有界通用协方差

generics - 支持 null 的结构和引用类型的类型约束

c# - 使用泛型重构