gpt4 book ai didi

java - 处理 java.lang.IllegalArgumentException : No enum constant 的最佳方法是什么

转载 作者:行者123 更新时间:2023-12-01 19:44:04 36 4
gpt4 key购买 nike

枚举类是这样的:

public enum UserRoles {
ADMIN, TEST
}

我想处理它,这样如果枚举中没有值,它就不应该抛出异常。我是这样处理的:

for(String roleString : roleStrings){
if(roleString.isEmpty())
continue;
UserRoles userRole;
try {
userRole = UserRoles.valueOf(roleString);
} catch(IllegalArgumentException e) {
continue;
}
accountRoles.add(userRole);
}

有更好的方法吗?

最佳答案

您可以引入一个静态方法,如果找到,它将为您获取Enum值,否则返回null

enum UserRoles {
ADMIN, TEST;

public static UserRoles fetchValue(String constant) {
return Arrays.stream(UserRoles.values())
.filter(e -> e.name().equals(constant))
.findFirst()
.orElse(null);
}
}

现在,即使未找到 Enum 常量,也会返回 null 而不是抛出异常。按如下方式使用它:

UserRoles userRole = UserRoles.fetchValue(str);
if (userRole != null) {
accountRoles.add(userRole);
}

关于java - 处理 java.lang.IllegalArgumentException : No enum constant 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54148910/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com