Próbuję użyć zamiast maskę bitową Poniżej znajduje się kodjava.util.stream.Collectors z EnumSet Stream
public static Set<Amenities> fromBitFlags(int bitFlag) {
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0).collect(Collectors.toSet());
}
Chciałbym wrócić EnumSet zamiast zwykłego zestawu (Nie chcę stracić na użyteczność EnumSet tylko z powodu rzucania).
Potrzebujesz wskazówek, jak utworzyć niestandardowy kolektor do zbierania EnumSet.
Wielkie dzięki, byłoby naprawdę pomocne, gdyby można było wyjaśnić tę lambdę w skrócie '() -> EnumSet.noneOf (Amenities.class)', w jaki sposób tworzy się dostawcę, który może automatycznie wywołać 'EnumSet.add()' –
@SomasundaramSekar, dodano pewne wyjaśnienie. Mam nadzieję, że to pomaga. –
Zastanów się nad alternatywą 'EnumSet s = EnumSet.copyOf (ALL_OPTS); s.removeIf (a -> (a.ameityId & bitFlag) <= 0); '... –
Holger