Как работает Varargs с коллекциями?

251
30 июля 2017, 08:09

Недавно наткнулся на такой пример :

class Test {
    static void say(Set<Double>... set) { 
    }
}

На сколько я знаю, Varargs создает массив из переданных аргументов, а массивы generic создавать нельзя.

Set<Double>[] setOfDoubles= new HashSet<Double>[2];  // ошибка компиляции

Каким образом создается массив коллекции с generic в данном случае?

Answer 1
@SuppressWarnings("unchecked")
Set<Double>[] setOfDoubles = (Set<Double>[]) new HashSet[2];

или

Set<Double>[] setOfDoubles = new HashSet[2];

а потом при использовании приводить тип

READ ALSO
Собрать файл из байтов используя только heap

Собрать файл из байтов используя только heap

В DB есть файл изображение в виде массива байтов, который нужно отдать клиенту через сервлетВ nio есть конструкция в Files

323
JSP использование forEach для вложенных классов

JSP использование forEach для вложенных классов

Всем приветВозник вопрос в том как использовать значения внутренних классов

336
JAVA лицензионное соглашение

JAVA лицензионное соглашение

Как можно предложить пользователю принять лицензионное соглашение, до запуска программы?

307
Условия с активностью jtextfield

Условия с активностью jtextfield

Есть два jtextfield и один jbutton

271