Stack<E>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(),
new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};
对于类,我必须制作自己的 Stack 类,它接受我指定的任何对象。 根据规范,我必须将所有堆栈放入一个数组中。
但是,当我尝试创建堆栈数组时,出现“找不到符号:E 类”错误。
如何创建通用堆栈数组?
最佳答案
public class Stack<E>{
// etc.
}
要像您一样创建堆栈数组,您可以使用通配符泛型:
Stack<?>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};
或者如果堆栈中的所有对象共享一个共同的继承,您可以使用类似的东西缩小通配符的范围
Stack<? extends Furniture>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};
关于java - 创建通用堆栈数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9864565/