Re: EnumSet and varargs
In article <rlo0d41ho6nt85m5jfjibuske8f5stl7hq@4ax.com>,
Roedy Green <see_website@mindprod.com.invalid> wrote:
On Tue, 16 Sep 2008 23:39:51 GMT, Wojtek <nowhere@a.com> wrote, quoted
or indirectly quoted someone who said :
closest is
http://java.sun.com/j2se/1.5.0/docs/api/java/util/EnumSet.html#of(E,%20E...)
, but it needs an initial single parameter. null is not an option.
All those variants are just ways of handling an EnumSet with a small
number of elements more efficiently.
[...]
Wojtek : In addition to the vararg constructor, consider offering an
EnumSet constructor. This would allow clients to use EnumSet's set
operations, e.g. union, intersection, complement, etc:
<code>
import java.util.*;
public class EnumTest {
enum Bar { ONE, TWO, THREE, FOUR; }
public EnumTest(EnumSet<Bar> bars) {
showBars(bars);
}
public EnumTest(Bar... bars) {
List<Bar> barList = Arrays.asList(bars);
EnumSet<Bar> barSet = EnumSet.copyOf(barList);
showBars(barSet);
}
private static void showBars(EnumSet<Bar> bars) {
for (Bar b : bars) System.out.print(b.name() + " ");
System.out.println();
}
public static void main(String[] args) {
EnumTest test1 = new EnumTest(
EnumSet.complementOf(EnumSet.of(Bar.THREE)));
Bar[] bars = { Bar.ONE, Bar.TWO, Bar.FOUR };
EnumTest test2 = new EnumTest(bars);
}
}
</code>
--
John B. Matthews
trashgod at gmail dot com
home dot woh dot rr dot com slash jbmatthews