当我运行以下代码时:
class MyStack<T>
{
private T[] stack;
... private T top;
private static final int size=50;
public MyStack()
{
stack = new int[size];
top = 0;
}
}
我收到此错误
MyStack.java:18: generic array creation
stack = new T[size];
...
1 error
正确的代码应该是什么,所以我没有得到这个错误
答案 0 :(得分:6)
您无法在Java中实例化参数化类型。因此也没有创建它的数组。将T[]
替换为Object[]
并将其创建为new Object[]
,并在必要时在方法中对T
使用强制转换。
只有Java有Reified generics,才有可能。