作者在这一节中介绍了将枚举和接口结合使用的用法:用枚举来实现接口。
这样就可以实现枚举类的多态,如作者给的操作符重载的例子:
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
},
TIMES("*") {
public double apply(double x, double y) { return x * y; }
},
DIVIDE("/") {
public double apply(double x, double y) { return x / y; }
};
private final String symbol;
BasicOperation(String symbol) {
this.symbol = symbol;
}
@Override
public String toString() {
return symbol;
}
}
代码本身也比较简单易懂,就是利用接口来实现枚举的多态。主要可以来重载其对应的行为。
这样的使用场景在我们系统中很少见,主要是因为在我们系统中奖枚举和行为结合起来使用的场景,主要就是在下载Excel 中vo 转换成string的场景,这种场景下行为是确定的,不需要对行为进行重载,所以没有将枚举和多态结合使用。
个人认为这种用法主要适用于枚举中行为的重载场景。