Lambda表达式和匿名内部类的区别
所属类型不同
-
匿名内部类:可以是接口,抽象类,具体类
-
Lambda:只能是接口
使用限制不同
-
如果接口中仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类
-
如果接口中多于一个抽象方法,只能使用匿名内部类
实现原理不同
-
匿名内部类:编译以后使用一个单独的.class字节码文件
-
Lambda表达式:编译以后没有单独的.class字节码文件。对应的字节码文件在运行时会动态生成。
-
所属类型不同
匿名内部类:可以是接口,抽象类,具体类
Lambda:只能是接口
使用限制不同
如果接口中仅有一个抽象方法,可以使用Lambda表达式,也可以使用匿名内部类
如果接口中多于一个抽象方法,只能使用匿名内部类
实现原理不同
匿名内部类:编译以后使用一个单独的.class字节码文件
Lambda表达式:编译以后没有单独的.class字节码文件。对应的字节码文件在运行时会动态生成。