Я пытаюсь использовать вместо битовой маски Ниже приведен кодjava.util.stream.Collectors с EnumSet Потока
public static Set<Amenities> fromBitFlags(int bitFlag) {
return ALL_OPTS.stream().filter(a -> (a.ameityId & bitFlag) > 0).collect(Collectors.toSet());
}
Я хотел бы вернуться EnumSet вместо обычного набора (не хочу терять на полезность EnumSet только из-за кастинга).
Нужно определить, как создать пользовательский сборщик для сбора EnumSet.
Спасибо большое, было бы очень полезно, если бы вы могли кратко объяснить эту лямбду '() -> EnumSet.noneOf (Amenities.class)', как это создает Поставщик, который может автоматически вызывать 'EnumSet.add()' –
@SomasundaramSekar, добавлено некоторое объяснение. Надеюсь, это поможет. –
Обратите внимание на альтернативу 'EnumSet s = EnumSet.copyOf (ALL_OPTS); s.removeIf (a -> (a.ameityId & bitFlag) <= 0); '... –
Holger