我的 enum
中的值是需要在其中包含空格的单词,但是枚举的值中不能包含空格,所以它们都是捆绑在一起的。我想覆盖 toString()
以在我告诉它的位置添加这些空格。
当我在添加空格的同一字符串上使用 valueOf()
时,我还希望枚举提供正确的枚举。
例如:
public enum RandomEnum
{
StartHere,
StopHere
}
在值为 StartHere
的 RandomEnum
上调用 toString()
返回字符串 “Start Here”
。对同一字符串调用 valueof()
("Start Here"
) 返回枚举值 StartHere
。
我该怎么做?
最佳答案
您可以试用此代码。由于您无法覆盖 valueOf
方法,因此您必须定义一个自定义方法(以下示例代码中的 getEnum
),该方法返回您需要的值并更改您的客户端以使用此方法而是。
public enum RandomEnum {
StartHere("Start Here"),
StopHere("Stop Here");
private String value;
RandomEnum(String value) {
this.value = value;
}
public String getValue() {
return value;
}
@Override
public String toString() {
return this.getValue();
}
public static RandomEnum getEnum(String value) {
for(RandomEnum v : values())
if(v.getValue().equalsIgnoreCase(value)) return v;
throw new IllegalArgumentException();
}
}
关于java - 在 Java 枚举中覆盖 valueof() 和 toString(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9662170/