Effective Java~38. 用接口模拟可扩展的enum
生活随笔
收集整理的這篇文章主要介紹了
Effective Java~38. 用接口模拟可扩展的enum
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
????????使用枚舉類型有一個(gè)很好的方法來(lái)實(shí)現(xiàn)這種效果。基本思想是利用枚舉類型可以通過(guò)為 opcode 類型定義一個(gè)接口,并實(shí)現(xiàn)任意接口。
// Emulated extensible enum using an interface 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;} }????????雖然枚舉類型( BasicOperation )不可擴(kuò)展,但接口類型( Operation )是可以擴(kuò)展的,并且它是用于表示 API 中的操作的接口類型。 你可以定義另一個(gè)實(shí)現(xiàn)此接口的枚舉類型,并使用此新類型的實(shí)例來(lái)代替基本類型。
// Emulated extension enum public enum ExtendedOperation implements Operation {EXP("^") {public double apply(double x, double y) {return Math.pow(x, y);}},REMAINDER("%") {public double apply(double x, double y) {return x % y;}};private final String symbol;ExtendedOperation(String symbol) {this.symbol = symbol;}@Override public String toString() {return symbol;} }總結(jié)
以上是生活随笔為你收集整理的Effective Java~38. 用接口模拟可扩展的enum的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【itext学习之路】--2.设置pdf
- 下一篇: linux查看link 路径,link_