我有一个在 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/