我的代码出了什么问题?

时间:2011-04-03 00:47:40

标签: java stack

当我运行以下代码时:

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

正确的代码应该是什么,所以我没有得到这个错误

1 个答案:

答案 0 :(得分:6)

您无法在Java中实例化参数化类型。因此也没有创建它的数组。将T[]替换为Object[]并将其创建为new Object[],并在必要时在方法中对T使用强制转换。

只有Java有Reified generics,才有可能。