java - values - iterate enum c#
java.util.stream.Collectors con EnumSet Stream (1)
Estoy tratando de usar en lugar de la máscara de bits a continuación es el código
public static Set<Amenities> fromBitFlags(int bitFlag) {
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0).collect(Collectors.toSet());
}
Me gustaría devolver EnumSet en lugar de un conjunto sencillo (no quiero perder la utilidad de EnumSet solo por el lanzamiento).
Necesita algunas instrucciones sobre cómo crear un colector personalizado para recopilar EnumSet.
Puede utilizar toCollection(Supplier)
:
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0)
.collect(Collectors.toCollection(() -> EnumSet.noneOf(Amenities.class)));
El método toCollection
recibe un lambda que debe crear una colección vacía para almacenar el resultado. Aquí creamos EnumSet
vacío utilizando EnumSet.noneOf
call. Tenga en cuenta que para EnumSet
siempre debe especificar (implícita o explícitamente) para qué enumeración se establece este conjunto.