java enum valueof 异常_java – 使用’valueOf’检索一个枚举throws RuntimeException – 使用什么?...

我有以下枚举

enum Animal implements Mammal {

CAT,DOG;

public static Mammal findMammal(final String type) {

for (Animal a : Animal.values()) {

if (a.name().equals(type)) {

return a;

}

}

}

}

我最初使用了Enum.valueOf(Animal.class,“DOG”);找到一个特定的动物.但是,我不知道如果没有找到匹配项,则会抛出一个IllegalArgumentException异常.我以为可能是一个null被返回.所以这给我一个问题.如果没有找到匹配,我不想抓住这个IllegalArgumentException.我想能够搜索Mammal类型的所有枚举,我不想为每个类型为Mammal的枚举实现这个静态“findMammal”.所以我的问题是,执行这个行为的最吉利的设计决定是什么?我会有这样的调用代码:

public class Foo {

public Mammal bar(final String arg) {

Mammal m = null;

if (arg.equals("SomeValue")) {

m = Animal.findMammal("CAT");

} else if (arg.equals("AnotherValue") {

m = Human.findMammal("BILL");

}

// ... etc

}

}

你可以看到,我有不同类型的哺乳动物 – “动物”,“人”,它们是枚举.我不想为每个Mammal枚举实现“findMammal”.我想最好的打赌只是创建一个实用程序类,它需要一个哺乳动物的参数,并搜索?也许有一个更完整的解决方案.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值