![](/img/trans.png)
[英]Java Enum - what's the difference between enum has override logic and enum abstract factory and each class has override logic?
[英]What is the difference between these two Enum(s) in Java
我有一个 String 对象: String theLanguage = "de";
我有这两个枚举:-
枚举 1:
public enum Lang
{
French("fr"),
German("de"),
English("en"),
Italian("it"),
Spanish("sp");
private String lang;
Lang(String lang) {
this.lang = lang;
}
public String lang() {
return lang;
}
}
和枚举 2:
public enum Lang
{
French(1, "fr"),
German(2, "de"),
English(3, "en"),
Italian(4, "it"),
Spanish(5, "sp");
final int languageID;
private final String code;
Lang( int languageID, String code)
{
this.languageID = languageID;
this.code= code;
}
}
- - - - - - - - - - - - 我的问题 - - - - - - - - - - - - -----
Q 1 - 这两个枚举有什么区别(基本上在第二个枚举中,为什么有 int 值)?
Q 2 -我需要做什么或添加第二个 Enum以便使用 Enum2搜索/匹配theLanguage
对象。 ?
第二个只有一个额外的参数,languageID
将此代码添加到第二个枚举以按代码搜索(例如“de”)
private static Map<String, Lang> reverseLookup = Arrays.stream(values())
.collect(Collectors.toMap(Lang::getCode, Function.identity()));
public String getCode() {
return code;
}
public static Lang fromCode(final String code) {
return reverseLookup.get(code);
}
1 - 第二个可以通过 string 和 int 值搜索(例如,如果您知道语言的 id 但不知道它的代码)。 知道“WhoisRIR”在您的构造函数应该在的地方做什么。
2 - 您需要为代码字符串添加一个 getter,然后 foreach 枚举,直到找到代码与theLanguage
相同的元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.