我的代码出了什么问题?

1 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;
    } 
}
Run Code Online (Sandbox Code Playgroud)

我收到这个错误

MyStack.java:18: generic array creation

stack = new T[size];
...
1 error
Run Code Online (Sandbox Code Playgroud)

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

Bal*_*usC 6

您无法在Java中实例化参数化类型.因此也没有创建它的数组.更换T[]Object[]并且作为创建new Object[]和使用投下反对T的方法,必要时.

只有Java具有Reified泛型,才有可能.