【发布时间】:2020-05-29 08:01:44
【问题描述】:
我有一个 enum 我调用了Permission 的对我的应用程序很重要的安全权限。在数据库中,用户可能拥有与我的应用程序无关的额外权限。从数据库读取用户时,我得到一个List<String>,我想建立一个List<Permission>,忽略那些不是枚举值的字符串。
public enum Permission { ADMIN, USER }
List<String> plaintextAuthorities = List.of("ADMIN","USER","COFFEEMAKER")
List<Permission> appPermissions = plaintextAuthorities.stream()
.map(Permission::valueOf) // this will throw an IllegalArgumentException for 'COFFEEMAKER'
.collect(Collectors.toList());
问题是map 步骤在到达与枚举值不对应的字符串之一时会抛出异常。我怎样才能filter 输出这些值,以便它们被悄悄地忽略而不抛出异常?
【问题讨论】:
标签: java exception enums java-stream filtering