Мне нужен EnumSet
из массива (который задается с помощью параметра метода varargs). Во-первых, я был удивлен, что в EnumSet
нет конструктор-метода varargs (есть EnumSet#of(E first, E... rest)
). В качестве обходного пути я использовал следующий вариант:
EnumSet<Options> temp = EnumSet.copyOf(Arrays.asList(options));
Однако это вызывает a java.lang.IllegalArgumentException: Collection is empty
. Итак, теперь у меня получилось следующее, что выглядит несколько смешно:
EnumSet<Options> temp = options.length > 0 ?
EnumSet.copyOf(Arrays.asList(options)) :
EnumSet.noneOf(Options.class);
Если этот курс можно перенести на какой-то метод, но все же, я спрашиваю себя, есть ли более простой способ использования существующих методов?