Что не так с моим кодом? - PullRequest
       1

Что не так с моим кодом?

1 голос
/ 03 апреля 2011

Когда я запускаю следующий код:

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 Ответ

6 голосов
/ 03 апреля 2011

Вы не можете создать экземпляр параметризованного типа в Java.и таким образом также не создавать массивы этого.Замените T[] на Object[] и создайте его как new Object[] и используйте приведения к T в методах при необходимости.

Только если в Java было Reified generics , этовозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...