@Component @RequiredArgsConstructor public class ChangeMoneyUseCaseFactory { private final List changeMoneyUseCases; private EnumMap changeMoneyUseCaseMap; @PostConstruct private void init() { changeMoneyUseCaseMap = changeMoneyUseCases.stream() .collect(Collectors.toMap(ChangeMoneyUseCase::getLevelType, Function.identity(), (existing, replacement) -> existing, ..