相关文章推荐
心软的红金鱼  ·  502. ...·  5 月前    · 
慷慨的蚂蚁  ·  networking - Add ...·  1 年前    · 

下面的写法与直接 使用静态方法而言,可读性、可维护性更强
是不是有DSL的感觉....

当然enum反编译后,的确就是静态方法。

/**
* Created by MyWorld on 2016/8/3.
*/
public enum Operation {
PLUS("+") {
@Override
public int apply(int x, int y) {
return x + y;
}
}, MINUS("-") {
@Override
public int apply(int x, int y) {
return x - y;
}
}, TIMES("*") {
@Override
public int apply(int x, int y) {
return x * y;
}
}, DIVIDE("/") {
@Override
public int apply(int x, int y) {
return x / y;
}
};

private String op;

Operation(String op) {
this.op = op;
}

public abstract int apply(int x, int y);

public String getOp() {
return op;
}

public void setOp(String op) {
this.op = op;
}

public static void main(String[] args) {
System.out.println(Operation.PLUS.apply(1, 2));
}

}

作者:刘光聪