使用 fromValue 函数而不是 valueOf, java 枚举有什么好处?
What is benefit from using fromValue function instead of valueOf, java enums?
我看到一些程序员在枚举结构中使用名为 fromValue 的函数。如果我们可以使用 valueOf,它的目的是什么?例如,我发现了这样的东西:
public static FooEnum fromValue(String v) {
return valueOf(v);
}
考虑一个枚举,它有一个字符串 属性,其值与枚举的名称不同。
public enum FooEnum {
A("foo"),
B("bar"),
;
...
}
那么您需要这样一种方法来查找 属性 值。
另请参阅此 answer
您的字符串值可能无效:
public static FooEnum fromValue(String v) {
try {
return valueOf(v);
} catch (InvalidArgumentException e) {
return FooEnum.UNKNOWN;
}
}
我看到一些程序员在枚举结构中使用名为 fromValue 的函数。如果我们可以使用 valueOf,它的目的是什么?例如,我发现了这样的东西:
public static FooEnum fromValue(String v) {
return valueOf(v);
}
考虑一个枚举,它有一个字符串 属性,其值与枚举的名称不同。
public enum FooEnum {
A("foo"),
B("bar"),
;
...
}
那么您需要这样一种方法来查找 属性 值。 另请参阅此 answer
您的字符串值可能无效:
public static FooEnum fromValue(String v) {
try {
return valueOf(v);
} catch (InvalidArgumentException e) {
return FooEnum.UNKNOWN;
}
}