Lambda表达式与匿名内部类主要存在如下区别与相同点

来源:互联网 发布:dbc2000怪物数据库 编辑:程序博客网 时间:2024/06/05 03:20
区别
  • 匿名内部类可以为任意接口创建实例——不管接口包含多少个抽象方法,只要匿名内部类实现所有的抽象方法即可;但Lambda表达式只能为函数式接口创建实例。
  • 匿名内部类可以为抽象类甚至普通类创建实例;但ambda表达式只能为函数式接口创建实例。
  • 匿名内部类实现的抽象方法的方法体允许调用接口中定义的默认方法;但Lambda表达式的代码块不允许调用接口中定义的默认方法。
联系
  • Lambda表达式与匿名内部类一样,都可以直接访问“effectively final”的局部变量,以及外部类的成员变量(包括实例变量和类变量)。
  • Lambda表达式创建的对象与匿名内部类生成的对象一样,都可以直接调用从接口中集成的默认方法。
0 0
原创粉丝点击