java堆栈数组
有没有可能创建一个堆栈数组,而不必在堆栈出现时对其进行强制转换? 当我执行以下操作时,Eclipse警告我无法生成堆栈的通用数组:
Stack<Card>[] cards = new Stack<Card>[52];
你可以在下面搜索框中键入要查询的问题!
有没有可能创建一个堆栈数组,而不必在堆栈出现时对其进行强制转换? 当我执行以下操作时,Eclipse警告我无法生成堆栈的通用数组:
Stack<Card>[] cards = new Stack<Card>[52];
# 1 楼答案
为什么要使用数组呢
它是一种低级编程结构
如果您不想麻烦进行初始化,请使用
List
或Set
(例如org.apache.commons.collections.list.LazyList
)或者至少
Arrays.asList(new Stack[52])
将数组包装到列表中我无法重现当前错误..:(可能是因为设置了不同的警告/错误级别
# 2 楼答案
Joshua Bloch在高效Java,第二版中出色地描述了这个问题Check out the relevant section on Google Book Search
他提出的建议是更喜欢列表而不是数组。您的代码可能会如下所示:
# 3 楼答案
# 4 楼答案
这个数组不需要是泛型,因为他总是这样定义的。你为什么认为你必须投?我认为eclipse在这里有些混乱
# 5 楼答案
这与类型擦除有关。基本上,泛型类型只在编译时存在,在运行时不存在
请看this forum post以获得更好的解释
# 6 楼答案
您可以执行以下操作,尽管这会给您一个编译器“未检查”的警告