Lambda表达式

/*
    Lambda表达式:JDK8开始的一种新的语法形式

        作用:简化匿名内部类的代码写法
        格式: () -> {}

            (): 匿名内部类被重写方法的形参列表
            {}: 被重写方法的方法体代码

    注意:Lambda表达式,只允许操作函数式编程接口(有且仅有一个抽象方法的接口)
*/
public class LambdaTest {
    public static void main(String[] args) {

        useInterA(new InterA() {
            @Override
            public void show() {
                System.out.println("匿名内部类重写后的show方法...");
            }
        });

        System.out.println("---------------------------");

        useInterA(() -> {
            System.out.println("Lambda表达式重写后的show方法...");
        });
    }

    public static void useInterA(InterA a) {
        a.show();
    }
}

interface InterA {
    void show();
}

/*
    Lambda表达式的省略写法:
        1.参数类型可以省略不写
        2.如果只有一个参数,参数类型可以省略,同时()也可以省略
        3.如果Lambda表达式的方法体代码只有一行代码,可以省略大括号不写,同时省略代码尾部分号
        4.如果只有一行代码且为return语句,则必须省略return不写
*/

public class AnonInnerAndLambda {
    /*
        Lambda表达式和匿名内部类的区别:
            使用限制不同:
                匿名内部类:可以操作类、接口
                Lambda表达式:只能操作函数式接口

            实现原理不同:
                匿名内部类:编译之后,产生一个单独的.class字节码文件
                Lambda表达式:编译之后,没有一个单独的.class字节码文件
    */
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值