我们有一个REST API,其中客户端可以提供表示Java Enums中服务器上定义的值的参数。查找Java枚举的最佳实践
所以我们可以提供一个描述性错误,我们将这个lookup
方法添加到每个枚举。好像我们只是复制代码(坏)。有更好的做法吗?
public enum MyEnum {
A, B, C, D;
public static MyEnum lookup(String id) {
try {
return MyEnum.valueOf(id);
} catch (IllegalArgumentException e) {
throw new RuntimeException("Invalid value for my enum blah blah: " + id);
}
}
}
更新:由valueOf(..)
提供的默认错误信息会No enum const class a.b.c.MyEnum.BadValue
。我想从API中提供更多的描述性错误。
好吧,IllegalArgumentException没有错,它已经是一个RuntimeException。你想在这里改进什么? – Riduidel 2010-03-10 16:50:39
添加比仅使用'valueOf'(和'IllegalArgumentException')时提供的描述性消息更多的描述性消息 – 2010-03-10 16:51:47