I'm trying to use in place of bitmask below is the code
public static Set<Amenities> fromBitFlags(int bitFlag) {
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0).collect(Collectors.toSet());
}
I would like to return EnumSet instead of a plain set(dont want to loose out on EnumSet's usefulness just because of casting).
Need some directions on how to create a Custom Collector to collect EnumSet.
You may use
toCollection(Supplier):The
toCollectionmethod receives a lambda which should create an empty collection to store the result. Here we create emptyEnumSetusingEnumSet.noneOfcall. Note that forEnumSetyou must always specify (implicitly or explicitly) which enum is this set for.