Java – 新的Stack 相当于通用数据类型Stack 的新Stack ?
new Stack[N]
等同于通用数据类型Stack
new Stack[N]
?
编辑:虽然我明白混合generics类型和数组应该最好避免,并且存在更强大的解决方案,我的查询仍然存在:广泛认可的教科书,如由韦恩和罗伯特塞奇威克(第158页)的算法,第4版建议使用构造如下:
Stack[] a = (Stack[]) new Stack[N];
是的,它们是等价的,除了返回类型(一个是Stack[]
,另一个是Stack>[]
)。
请注意, Stack[]
可以在没有显式强制转换的情况下分配给Stack
(您将只获得未经检查的转换警告),而将Stack>[]
分配给Stack
是错误的。没有演员。
new Stack[N]
使用原始类型,不建议在新代码中使用。
[将我的评论转化为真实答案]
1)应避免混合数组和generics类型。
2)相反,当需要处理多个“通用”对象时,可以使用Java Collection类型,例如ArrayList,例如
ArrayList> theStacks = new ArrayList<>();