我喜欢使用enum
,它增强了代码的可读性和可用性。但有一些像这样的情况,我想简化“复制”的A和B“枚举”构造和功能......是否可能?
public static enum KEYS {
KEYS() {};
public static enum RSA {
RSA() {};
public static enum A {
ONE (new String[]{...}),
TWO (new String[]{...}),
THREE (new String[]{...});
public final String[] keys;
A(String[] keys) {
this.keys=keys;
}
public int getVersion(){
return keys.length;
}
}
public static enum B {
ONE (new String[]{...}),
TWO (new String[]{...}),
THREE (new String[]{...});
public final String[] keys;
B(String[] keys) {
this.keys=keys;
}
public int getVersion(){
return keys.length;
}
}
}
...
}
答案 0 :(得分:1)
目前不可能有各种枚举(嵌套或非嵌套)重用的getVersion()
方法的通用实现,因为Java使所有枚举最终(不可扩展),因此它们不能相互继承或其他类。你必须为每个枚举定义所有方法和构造函数。
(注意:将来有可能使用 defender方法使用Java 8)