Ho bisogno di un EnumSet
da un array (che è dato attraverso un parametro metodo varargs). Innanzitutto, sono rimasto sorpreso dal fatto che non ci sia alcun metodo di costruzione dei vararg in EnumSet
(c'è EnumSet#of(E first, E... rest)
). Per aggirare il problema, ho usato la seguente variante:EnumSet dall'array, variante più corta?
EnumSet<Options> temp = EnumSet.copyOf(Arrays.asList(options));
Tuttavia, questo innesca un java.lang.IllegalArgumentException: Collection is empty
. Così, ora ho finito con la seguente, che sembra un po 'ridicolo:
EnumSet<Options> temp = options.length > 0 ?
EnumSet.copyOf(Arrays.asList(options)) :
EnumSet.noneOf(Options.class);
Se Naturalmente questo potrebbe essere spostato a qualche metodo di utilità, ma ancora, sto a chiedermi se c'è un modo più semplice usando metodi esistenti ?
Questo non affronta il caso in cui la matrice è vuota. –