【发布时间】:2012-08-23 12:15:52
【问题描述】:
我目前使用这样定义的枚举:
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;
}
public static Language find(String name) {
for (Language lang : Language.values()) {
if (lang.getValues().contains(name)) {
return lang;
}
}
return null;
}
}
问题是,我将不得不使用多个使用相同方法和构造函数的枚举。在我的情况下,唯一改变的是枚举本身的值。
有没有办法让我创建一个我可以重用的枚举的超类?
这样我就可以做类似的事情:
public Language extends(specializedEnum){
English("english", "eng", "en", "en_GB", "en_US"),
German("german", "de", "ge"),
Croatian("croatian", "hr", "cro"),
Russian("russian");
}
提前谢谢你!
【问题讨论】:
-
Java extend enum 的可能重复项
-
至少你只能实现接口来保证兼容性。
-
感谢 Keppil,但我已经读过那个。值不会相同,只有方法会
-
答案仍然成立,你不能扩展
enums,也不能enum扩展任何东西。但是,如果有帮助,它可以实现interface。
标签: java inheritance enums