显然,lambda版本更具可读性。它不仅更短,而且还使读者乍一看构造函数中的实现操作符。假设您也想扩展
enum来支持
int计算…
从性能的角度来看,您正在
enum通过生成的lambda类交换匿名内部类。lambda版本增加了另一级别的委派,但这对HotSpot优化器来说不是挑战。在执行性能方面几乎看不出任何差异。
但是,因此,在应用lambda模式时,使用该类可能会加快应用程序的 启动
速度。原因是对于传统的专用
enum方法,Java编译器必须为每种情况生成一个内部类,该内部类驻留在文件系统中或(可能是zip压缩)在Jar文件中。动态生成lambda类(结构非常简单)的字节码通常比加载类快。对生成的lambda类不进行访问检查也可能有所帮助。
总结一下:
- lambda方法更易于阅读,其代码更易于维护(重点)
- 执行性能大致相同
- 对于lambda方法,启动时间可能会更短
因此,这对于lambda是一个巨大的胜利。是的,我认为lambda方式是Java 8的首选方式。



