Как конвертировать Set <String>в Set <Object> - PullRequest
0 голосов
/ 25 апреля 2020

Как конвертировать strRoles в Set<Role>. Заранее спасибо

Set<String> strRoles = signUpRequest.getRoles();
Set<Role> roles = new HashSet<>();

Role.model

@Document(collection = "roles")
public class Role {   
    @Id
    private String id;
    private ERole name;
}

Erole.enum

public enum ERole {
    ROLE_ADMIN,
    ROLE_USER
}

1 Ответ

1 голос
/ 25 апреля 2020

С потоками:

Set<Role> convertStringSetToRoleSetWithStreams(final Set<String> rolesInString) {
    return rolesInString.stream().map(roleInString -> {
        final Role role = new Role();
        role.setName(ERole.valueOf(roleInString));
        return role;
    }).collect(Collectors.toSet());
}

Без потоков:

Set<Role> convertStringSetToRoleSetWithoutStreams(final Set<String> rolesInString) {
    final Set<Role> rolesInObject = new HashSet<>();
    for (final String roleInString : rolesInString) {
        final Role role = new Role();
        role.setName(ERole.valueOf(roleInString));
        rolesInObject.add(role);
    }
    return rolesInObject;
}

Не стесняйтесь принять ответ, если он работает.

...