我看到一些程序员在枚举结构函数中使用fromValue。这是什么目的,如果我们可以使用valueOf?例如,我发现这样的事情:使用fromValue函数而不是valueOf,java枚举有什么好处?
public static FooEnum fromValue(String v) {
return valueOf(v);
}
我看到一些程序员在枚举结构函数中使用fromValue。这是什么目的,如果我们可以使用valueOf?例如,我发现这样的事情:使用fromValue函数而不是valueOf,java枚举有什么好处?
public static FooEnum fromValue(String v) {
return valueOf(v);
}
你可能有一个无效的字符串值:
public static FooEnum fromValue(String v) {
try {
return valueOf(v);
} catch (InvalidArgumentException e) {
return FooEnum.UNKNOWN;
}
}
谢谢,现在很清楚。这意味着为了可读性的目的,所讨论的方法'fromValue'是毫无意义的或添加的。 –
想想一个具有不同值的字符串属性,然后是枚举的名称。
public enum FooEnum {
A("foo"),
B("bar"),
;
...
}
然后你需要这样的方法来查找属性值。 另见本answer
我明白了,但我对它是否有更深的含义感兴趣。我的意思是编码惯例,可读性等。 –
啊好的。我们像提到的@daniu一样使用它来处理无效值并抛出一个表明开发人员失败的异常。所以它更像是一个内部conding约定。 –
如果实现是这样那么我们只能猜测的 - 我的猜测是,它的意思是更具可读性(我不是说它是)。 – Thomas
是的,我从来没有见过这个,我不明白这一点。 – christopher
谢谢,我是编程新手,所以我对此感到困惑。 –