Java 创建泛型堆栈数组

Java 创建泛型堆栈数组,java,arrays,generics,Java,Arrays,Generics,对于类,我必须创建自己的堆栈类,该类接受我指定的任何对象。 根据规范,我必须将所有堆栈放入一个数组中 但是,当我尝试创建堆栈数组时,我得到一个找不到的符号:class E错误 如何创建泛型堆栈数组?泛型类型声明,如仅在定义类时有效,如 Stack<E>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), new Stack<Chair>(), n

对于类,我必须创建自己的堆栈类,该类接受我指定的任何对象。 根据规范,我必须将所有堆栈放入一个数组中

但是,当我尝试创建堆栈数组时,我得到一个找不到的符号:class E错误


如何创建泛型堆栈数组?

泛型类型声明,如仅在定义类时有效,如

Stack<E>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), 
                     new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};
要像现在这样创建堆栈数组,可以使用通配符:

public class Stack<E>{
 // etc.
} 
或者,如果堆栈中的所有对象都共享一个公共继承,则可以使用以下内容缩小通配符的范围

Stack<?>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};

泛型类型声明,如仅在定义类时有效,如

Stack<E>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), 
                     new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};
要像现在这样创建堆栈数组,可以使用通配符:

public class Stack<E>{
 // etc.
} 
或者,如果堆栈中的所有对象都共享一个公共继承,则可以使用以下内容缩小通配符的范围

Stack<?>[] stacks = {new Stack<Bed>(), new Stack<Bookshelves>(), new Stack<Chair>(), new Stack<Desk>(), new Stack<Table>()};

不能创建泛型数组。但是如果可以的话,你想用它做什么呢?几乎可以肯定,你最好创建一个堆栈列表。尽管对于您的特殊情况,我坦率地认为您根本不应该创建数组或列表,但应该将不同类型的列表作为显式的、单独的变量保留。您不能创建泛型数组。但是如果可以的话,你想用它做什么呢?几乎可以肯定,你最好创建一个堆栈列表。虽然对于您的特殊情况,我坦率地认为您根本不应该创建数组或列表,但应该将不同类型的列表作为显式的、单独的变量保留