java:多维通用数组创建
如何在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
有什么办法
(我希望有人推荐使用列表。请解释如何使用数组实现这一点。)
# 1 楼答案
new A[][]
并将其投射到A<String>[][]
# 2 楼答案
不能简单地创建特定于类型的泛型数组
这是一篇关于Java1.5泛型的有趣文章,“Java theory and practice: Generics gotchas”
# 3 楼答案
你为什么不这样做:(非通用)
并创建一个实用类来实现您在
A<T>
中创建的函数(我想有)。例如:当你在
A
中看到这个时:您可以创建一个实用程序类: