在Java枚举中重写valueof()和toString()
我enum
中的值是需要在其中包含空格的单词,但是枚举的值中不能包含空格,因此将它们全部堆积在一起。我想重写toString()
以将这些空间添加到我告诉的位置。
当我valueOf()
在与添加空格相同的字符串上使用时,我还希望该枚举提供正确的枚举。
例如:
public enum RandomEnum{
StartHere,
StopHere
}
电话toString()
上的RandomEnum
,其值是StartHere
返回字符串"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枚举中重写valueof()和toString() 的全部内容, 来源链接: utcz.com/qa/430197.html