gpt4 book ai didi

java - 在 Java 中将随机字符串转换为枚举

转载 作者:行者123 更新时间:2023-12-02 01:53:28 27 4
gpt4 key购买 nike

我已经定义了这个枚举,客户端可以在其中传递一些随机类型,我想将它们转换为一致的可用形式:

package com.amazon.dvpatemplateselectionservice.types;

public enum Cases {
LOWERCASE("lowercase"), UPPERCASE("UPPERCASE"), CAMEL("camelCased");

private final String someCase;

Cases(final String inputCase) {
this.someCase = inputCase;
}
}

当我在代码中调用它时,我希望客户端的输入转换为枚举:

Cases whatever = Cases.valueOf(Cases.class, requestParams.getValue());

Class someClass = new Class(whatever);

我得到的错误:

java.lang.IllegalArgumentException: camelCased is not a constant in Cases

我在这里缺少什么?

最佳答案

Enum#valueOfname 参数期望枚举名称与声明的完全相同,但这不适用于您的输入。

您将需要使用自定义查找方法,例如下面的 find:

enum Cases {
LOWERCASE("lowercase"), UPPERCASE("UPPERCASE"), CAMEL("camelCased");

private final String caze;

Cases(final String inputCase) {
this.caze = inputCase;
}

public static Cases find(String c) {
//you can also just loop
return Stream.of(values()).filter(v -> v.caze.equals(c))
.findFirst().orElse(null);
}
}

并像这样使用它:

Cases whatever = Cases.find(requestParams.getValue());

关于java - 在 Java 中将随机字符串转换为枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52647167/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com