2017-09-04 66 views
0

我看到一些程序员在枚举结构函数中使用fromValue。这是什么目的,如果我们可以使用valueOf?例如,我发现这样的事情:使用fromValue函数而不是valueOf,java枚举有什么好处?

public static FooEnum fromValue(String v) { 
    return valueOf(v); 
} 
+1

如果实现是这样那么我们只能猜测的 - 我的猜测是,它的意思是更具可读性(我不是说它是)。 – Thomas

+0

是的,我从来没有见过这个,我不明白这一点。 – christopher

+0

谢谢,我是编程新手,所以我对此感到困惑。 –

回答

0

你可能有一个无效的字符串值:

public static FooEnum fromValue(String v) { 
    try { 
     return valueOf(v); 
    } catch (InvalidArgumentException e) { 
     return FooEnum.UNKNOWN; 
    } 
} 
+0

谢谢,现在很清楚。这意味着为了可读性的目的,所讨论的方法'fromValue'是毫无意义的或添加的。 –

0

想想一个具有不同值的字符串属性,然后是枚举的名称。

public enum FooEnum { 
    A("foo"), 
    B("bar"), 
    ; 
    ... 
} 

然后你需要这样的方法来查找属性值。 另见本answer

+0

我明白了,但我对它是否有更深的含义感兴趣。我的意思是编码惯例,可读性等。 –

+0

啊好的。我们像提到的@daniu一样使用它来处理无效值并抛出一个表明开发人员失败的异常。所以它更像是一个内部conding约定。 –

相关问题