是new Stack<?>[N]
相当于new Stack[N]
对于通用数据类型 Stack<Item>
?
编辑:虽然我知道最好避免混合泛型类型和数组,并且存在更强大的解决方案,但我的查询仍然存在:被广泛认可的教科书,例如 Kevin Wayne 的算法,第 4 版和Robert Sedgewick(第 158 页)建议使用如下结构:
Stack<String>[] a = (Stack<String>[]) new Stack[N];
最佳答案
是的,它们是等价的,除了返回类型(一个是 Stack[]
,另一个是 Stack<?>[]
)。
请注意 Stack[]
可以分配给Stack<String>[]
没有显式转换(您只会收到未经检查的转换警告),而分配 Stack<?>[]
是错误的至 Stack<String>[]
没有 Actor 。
new Stack[N]
使用新代码中不推荐的原始类型。
关于Java - 对于通用数据类型 Stack<Item>,new Stack<?>[N] 是否等同于 new Stack[N]?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29209224/