2014-03-31 3 views
1

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

Как Generic arrays in Java

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

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

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

+2

Что произойдет, если вы измените правую часть задания на 'new RotatingQueue [15]'? –

+0

Еще лучше: 'new RotatingQueue <> [15]'? (Java 7 отсутствует, даже Java 8) –

+0

Да, я знаю, но я не хотел вводить новое неизвестное, учитывая, что мы не знаем, какая версия Энди работает. –

ответ

3

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

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

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