我正在尝试制作一个通用的 Stack 类,如图所示
public class Stack<T> {
public Stack(Class<T[]> type, int capacity) {
this.capacity = capacity;
array = type.cast(Array.newInstance(type,capacity));
}
}
Run Code Online (Sandbox Code Playgroud)
但我不确定实例化时要放入什么类型,因为我想做
MyClass[] c = new MyClass[0];
myStack = new Stack<MyClass>(c.getClass(), 100);
Run Code Online (Sandbox Code Playgroud)
但是我收到以下错误
Required type: Class <MyClass[]>
Provided: Class <capture of ? extends MyClass[]>
Run Code Online (Sandbox Code Playgroud)
所以我想用
c.getClass().cast()\
Run Code Online (Sandbox Code Playgroud)
但我不确定要在cast()中放入什么,因为它不需要
Class<MyClass[]>
Run Code Online (Sandbox Code Playgroud)
现在我被困住了。