您现在的位置是:主页 > news > 长春模板网站建设企业/互联网广告推广

长春模板网站建设企业/互联网广告推广

admin2025/5/11 13:31:44news

简介长春模板网站建设企业,互联网广告推广,怎样在百度做广告宣传,有没有可以直接看的问题myenum中的值是需要在其中包含空格的单词,但枚举不能在其值中包含空格,因此它们全部聚集在一起。我想覆盖toString()以在我告诉它的地方添加这些空格。当我使用valueOf()在我添加空格的相同字符串时,我还希望枚举能够提供正确的枚举。例如…

长春模板网站建设企业,互联网广告推广,怎样在百度做广告宣传,有没有可以直接看的问题myenum中的值是需要在其中包含空格的单词,但枚举不能在其值中包含空格,因此它们全部聚集在一起。我想覆盖toString()以在我告诉它的地方添加这些空格。当我使用valueOf()在我添加空格的相同字符串时,我还希望枚举能够提供正确的枚举。例如…

问题

myenum中的值是需要在其中包含空格的单词,但枚举不能在其值中包含空格,因此它们全部聚集在一起。我想覆盖toString()以在我告诉它的地方添加这些空格。

当我使用valueOf()在我添加空格的相同字符串时,我还希望枚举能够提供正确的枚举。

例如:

public enum RandomEnum

{

StartHere,

StopHere

}

CalltoString()onRandomEnum,其值为StartHere,返回string"Start Here"。 Callvalueof()在相同的字符串("Start Here")返回枚举值StartHere。

我怎样才能做到这一点?

#1 热门回答(160 赞)

你可以试试这个代码。由于你无法覆盖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();

}

}

#2 热门回答(21 赞)

试试这个,但我不确定每个地方都会有效:)

public enum MyEnum {

A("Start There"),

B("Start Here");

MyEnum(String name) {

try {

Field fieldName = getClass().getSuperclass().getDeclaredField("name");

fieldName.setAccessible(true);

fieldName.set(this, name);

fieldName.setAccessible(false);

} catch (Exception e) {}

}

}

#3 热门回答(10 赞)

Java 8实现怎么样? (null可以替换为你的默认枚举)

public static RandomEnum getEnum(String value) {

List list = Arrays.asList(RandomEnum.values());

return list.stream().filter(m -> m.value.equals(value)).findAny().orElse(null);

}

或者你可以使用:

...findAny().orElseThrow(NotFoundException::new);