Sto cercando di usare al posto della maschera di bit sotto è il codicejava.util.stream.Collectors con EnumSet flusso
public static Set<Amenities> fromBitFlags(int bitFlag) {
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0).collect(Collectors.toSet());
}
Vorrei tornare EnumSet invece di un set normale (non voglio perdere sull'utilità di EnumSet solo per il casting).
Sono necessarie alcune istruzioni su come creare un servizio di raccolta personalizzato per raccogliere EnumSet.
Grazie mille, sarebbe davvero utile se si potesse spiegare questo lambda in breve '() -> EnumSet.noneOf (Amenities.class)', come questo crea un Fornitore che può chiamare automaticamente 'EnumSet.add()' –
@SomasundaramSekar, aggiunto qualche spiegazione. Speriamo che questo aiuti. –
Considera l'alternativa di 'EnumSet s = EnumSet.copyOf (ALL_OPTS); s.removeIf (a -> (a.ameityId e bitFlag) <= 0); '... –
Holger