Обобщения в массиве Java

1

Для начала есть несколько сообщений на самой SO, которые объясняют, почему Generics и массивы не смешиваются в Java.

Как и общие массивы в Java

Но мой вопрос: если это так, почему я получаю предупреждение в Eclipse, когда я делаю что-то вроде следующего и как избавиться от этого предупреждающего сообщения.

private RotatingQueue<RotatingQueueData> rQueue[] =  new RotatingQueue[15];

Предупреждение: несколько маркеров в этой строке - тип безопасности: выражение типа RotatingQueue [] требует необработанного преобразования для соответствия RotatingQueue []

  • 2
    Что произойдет, если вы измените правую часть назначения на new RotatingQueue<RotatingQueueData>[15] ?
  • 0
    Еще лучше: new RotatingQueue<>[15] ? (Java 7 вышла, даже Java 8)
Показать ещё 5 комментариев
Теги:
generics
arrays

1 ответ

3
Лучший ответ

Невозможно создать массив параметризованного типа. Следовательно, вы должны жить с предупреждением, но можете игнорировать его так:

@SuppressWarnings("unchecked")
List<String> lists[] = new List[15];

Я не знаю другого способа сделать это, если вы попытаетесь продолжить работу с List<String>.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню