java - 通用数组创建错误

标签 java arrays generics

我正在尝试做这样的事情:-

public static ArrayList<myObject>[] a = new ArrayList<myObject>[2];

myObject 是一个类。我收到此错误:- 通用数组创建(箭头指向新的。)

最佳答案

你不能有泛型类的数组。 Java 根本不支持它。

您应该考虑使用集合而不是数组。例如,

public static ArrayList<List<MyObject>> a = new ArrayList<List<MyObject>();

另一个“解决方法”是创建一个像这样的辅助类

class MyObjectArrayList extends ArrayList<MyObject> { }

然后创建一个MyObjectArrayList数组。

<小时/>

这是一个good article为什么这在该语言中是不允许的。本文给出了以下示例,说明如果允许的话可能会发生什么:

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); 

关于java - 通用数组创建错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60306885/

相关文章:

java - UTF 到 EBCDIC 的转换是无损的吗?

java - JMS能否保证队列中的一条消息一次只能被一个receiver实例接收到?

python - 生成 datetime.time 对象数组 python

arrays - 逻辑应用 - 迭代 HTTP 调用的 JSON 输出

c++ - 如何自动生成C++函数?

c# - ClientBase<TChannel> 和 ChannelFactory<TChannel> 的代码生成?

java - 如何在速度模板中将字符串转换为日期?

Java Scanner 类给出 java.util.NoSuchElementException

javascript - 如何在Javascript中计算多个动态输入字段的总和?

java - 我如何在通用类中使用 intValue()