我喜欢使用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;
}
}
}
...
}
最佳答案
目前不可能有一个由各种枚举(嵌套或非嵌套)重用的 getVersion()
方法的通用实现,因为 Java 使所有枚举都是最终的(不可扩展),因此它们无法继承来自彼此或其他类(class)。您必须为每个枚举定义所有方法和构造函数。
(注意:将来 Java 8 可能会使用 Defender 方法)
关于java - 改进嵌套枚举定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15032926/