The following notation is more readable and maintainable than the direct use of static methods
is not the feeling of DSL ....
Of course, after the enum is recompiled, it is indeed a static method.
/*** Created by MyWorld on 2016/8/3.*/ Public enumOperation {PLUS ("+") {@Override Public intApplyintXinty) {returnX +y; }}, minus ("-") {@Override Public intApplyintXinty) {returnX-y; }}, Times ("*") {@Override Public intApplyintXinty) {returnX *y; }}, DIVIDE ("/") {@Override Public intApplyintXinty) {returnX/y; } }; PrivateString op; Operation (String op) { This. Op =op; } Public Abstract intApplyintXinty); PublicString getop () {returnop; } Public voidsetop (String op) { This. Op =op; } Public Static voidMain (string[] args) {System.out.println (Operation.PLUS.apply (1, 2)); }}
Thank Liu Guangzong for sharing in Jane's book.
An example of using enum to implement polymorphism