创建一个映射枚举的映射

问题描述 投票:1回答:1

需要您的帮助。我今天进行了一次编程采访,并提出了这个问题。

请完成以下代码片段以创建一个映射枚举以编辑特权的映射

Map<String, Boolean> userTypeToEditPermission () {
return Stream.____(UserType.____).____(____(Enum::name,UserType::hasEsitPermission));

enum UserType {
      ADMIN(true), MODERATOR(true), DEVELOPER(false);
}

private final boolean editPermission;

UserType(boolean editPermission) {
     this.editPermission=editPermission
}

public boolean hasEditPermission() {
return hasEditPermission;
}
java collections enums maps java-stream
1个回答
0
投票

您的代码段中有一些语法错误,枚举可能看起来像这样:

enum UserType {
    ADMIN(true), MODERATOR(true), DEVELOPER(false);

    private final boolean editPermission;

    UserType(final boolean editPermission) {
        this.editPermission = editPermission;
    }

    public boolean hasEditPermission() {
        return editPermission;
    }
}

[涉及userTypeToEditPermission()方法时,我假设他们想要一个从UserType名称(Enum::name)到editPermissionUserType::hasEditPermission)的映射,您可以创建如下:

return Stream.of(UserType.values()).collect(Collectors.toMap(Enum::name, UserType::hasEditPermission));

这将在所有UserType值上创建一个流,然后创建上述映射:

{DEVELOPER=false, ADMIN=true, MODERATOR=true}
© www.soinside.com 2019 - 2024. All rights reserved.