【发布时间】:2011-07-23 15:51:50
【问题描述】:
如何在 java 中创建多维通用项数组?
考虑类:
class A<T>
{
T t;
public A(T t) { this.t = t; }
}
当我尝试创建一个多维数组时:
A<String>[][] array = new A<String>[2][3];
我收到以下错误:
generic array creation
A<String>[][] array = new A<String>[2][3];
^
我尝试了以下方法:
A<String>[][] array = (A<String>[][]) (new Object[2]3]);
但这只是抛出:java.lang.ClassCastException
解决方法是什么?
(我预计人们会推荐使用列表。请解释如何使用数组来实现这一点。)
【问题讨论】:
-
你坚持使用数组而不是其他集合类型的原因是什么?
-
您正在将 Object[][] 转换为 A
[][],两者不兼容。 -
@Gareth McCaughan -- 数组比列表更容易索引。
array[i][j]比array.get(i).get(j)更易读。当您编写复杂的算法时,这真的很有帮助。
标签: java arrays generics multidimensional-array