1.在其他编程语言,enum只是一些常量,但是在java,enum可以做一个class所有能做的事
2.用enum可以很简单安全的实现单列模式,传统的单列模式在序列化反序列化是一不小心就会产生多一个对象,破坏单列。用enum不会
3.上图直接Operation.ADD.apply(1,2)返回结果3,ADD((x,y)->x+y)相当于public static final ADD=new Operation((x,y)->x+y)
4.
4.上两个图片,一个是负杂的业务逻辑 ,一个是在enum中用method reference传进去,代替之前的x,y->x+y