What is benefit from using fromValue function instead of valueOf, java enums?

14.5k Views Asked by At

I see some programmers use in enums structure function called fromValue. What is it purpose, if we can use valueOf? For example, I found something like this:

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

There are 2 best solutions below

1
On BEST ANSWER

You may have an invalid String value:

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

Think about an enum that has a string property with a different value then the name of the enum.

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

Then you need such an method for a lookup of the property values. See also this answer