跳到主要内容

Lambda 表达式 VS 匿名内部类

本节我们将重点讨论下 Lambda 表达式与匿名内部类之间除了语法外还有哪些差别。再开始讲解之前我们先列出两者重要的两点区别:

  • 无标识性: 内部类会确保创建一个拥有唯一表示的对象,而 Lambda 表达式的计算结果有可能有唯一标识,也可能没有。
  • 作用域规则: 由于内部类可以从父类继承属性,Lambda 表达式却不能,所以,内部类的作用域规则比 Lambda 表达式要复杂。(关于 Lambda 表达式的作用域规则可以回看 03 节的内容)

我们来看一个例子: