gpt4 book ai didi

具有多个值的Java枚举valueOf()?

转载 作者:IT老高 更新时间:2023-10-28 20:39:50 26 4
gpt4 key购买 nike

我在 Java 中使用 Enums 时遇到问题。我已阅读有关将值参数分配给枚举的文档。但是,我的问题是多个值怎么办,有可能吗?

这是我想要实现的:我有一个语言枚举。每种语言都由其名称和一些较短的别名表示(并非总是,而且别名的数量并不总是相同)

这是一个例子:

public enum Language{
English("english", "eng", "en", "en_GB", "en_US"),
German("german", "de", "ge"),
Croatian("croatian", "hr", "cro"),
Russian("russian")
}

我可以像这样定义一个枚举并通过调用 Language.valueOf() 来获取正确的枚举值吗???

最佳答案

这可能与您想要实现的目标相似。

public enum Language{
English("english", "eng", "en", "en_GB", "en_US"),
German("german", "de", "ge"),
Croatian("croatian", "hr", "cro"),
Russian("russian");

private final List<String> values;

Language(String ...values) {
this.values = Arrays.asList(values);
}

public List<String> getValues() {
return values;
}
}

记住枚举和其他枚举一样是一个类; English("english", "eng", "en", "en_GB", "en_US") 正在调用枚举构造函数。

然后你可以通过搜索方法检索到一个字符串对应的枚举值(你可以再次将它作为一个静态方法放在枚举中)。

public static Language find(String name) {
for (Language lang : Language.values()) {
if (lang.getValues().contains(name)) {
return lang;
}
}
return null;
}

关于具有多个值的Java枚举valueOf()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4197988/

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