Java 枚举查找并不抛异常的实现
- 问题
输入有效的时候,使用Enum.valueOf非常棒。但是,如果传入无效的名称,那么将抛出异常。在某些情况下,这很好。不过,在通常情况下,我们宁愿忽略异常并返回null。
- 方案
Guava Enums.getIfPresent
public static CardSuit getIfPresent(String name) {
return Enums.getIfPresent(CardSuit.class, name).orNull();
}
异常不应该用于控制流,并且这样可能会有一些性能影响。