我刚刚发现 Java 允许枚举实现接口(interface)。有什么好的用例?
最佳答案
这是一个示例(在 Effective Java 2nd Edition 中可以找到类似/更好的示例):
public interface Operator {
int apply (int a, int b);
}
public enum SimpleOperators implements Operator {
PLUS {
int apply(int a, int b) { return a + b; }
},
MINUS {
int apply(int a, int b) { return a - b; }
};
}
public enum ComplexOperators implements Operator {
// can't think of an example right now :-/
}
现在获取简单 + 复杂运算符的列表:
List<Operator> operators = new ArrayList<Operator>();
operators.addAll(Arrays.asList(SimpleOperators.values()));
operators.addAll(Arrays.asList(ComplexOperators.values()));
所以在这里你使用一个接口(interface)来模拟可扩展的枚举(如果不使用接口(interface)是不可能的)。
关于java - 为什么枚举要实现接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709593/