java - 验证成功的 String 到 Java 中的枚举转换

标签 java exception enums

我有一个在 Web 服务实现中定义为枚举的帐户类型列表。但是,当消费者调用 Web 服务时,它会传递一个需要转换为枚举的字符串。

验证给定字符串是否会成功转换为枚举的好方法是什么?

我使用了以下方法,但这可能是对异常的滥用(根据 Effective Java,第 57 条)。

AccountType accountType = null;
try{
    accountType = AccountType.valueOf(accountTypeString);
}catch(IllegalArgumentException e){
    // report error
}

if (accountType != null){
    // do stuff
}else{
    // exit
}

最佳答案

您可以查看枚举值并检查每个文字的名称是否等于您的字符串,例如

for (Test test : Test.values()) {
    if (str.equals(test.name())) {
        return true;
    }
}
return false;

枚举是:

public enum Test {
    A,
    B,
}

您也可以返回枚举常量或 null,因为枚举通常很小,所以不会成为性能问题。

关于java - 验证成功的 String 到 Java 中的枚举转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11163121/

相关文章:

java - Tokyo Cabinet - 内存调整

Java - 默认检查溢出

c++ - C++使用位OR运算符枚举

enums - 枚举值作为 Haxe 中的参数默认值

java - enum java 错位构造错误

java - 处理 pojo 的设计模式

java - 闰年逻辑的多个 If 语句,如何构建它们?

java - Objects.requireNonNull(T obj) 而不是 null 检查并手动抛出 IllegalArgumentException?

java - 抛出异常时编译错误?

exception - 为什么这种情况一直发生? Solr OutOfMemoryError GC超出开销限制