jdk 8 学习

lamdba表达式

1. lamdba 包含参数列表,->,lamdba主体.
2. 特点
    1. 匿名: 没有一个明确的名字.写的少而想的多
    2. 函数: 不像方法一样属于某个类,但是像方法一样,包含参数列表,函数主体,返回类型,还可能有抛出的异常列表.
# 语法
()-> 32; // 返回一个int类型数据
()->{return 32;} //  返回一个int类型的数据
# 以上两种方式都是返回一个int类型的数据,一个有花括号并且return,一个没有花括号和return,请注意区分.

函数式接口

# 概念
    接口中只有一个抽象方法,注意:是只有一个.
    例如: 
    public interface a{
        int sum(int a,int b);
    }
    public interface b extends a{
        int add(int a,int b);
    }
    public interface c{

    }
    // ----
    只有 a 才是一个函数式接口;
    b因为继承了a,所有b中包含了两个抽象方法,所以b不能是函数式接口;
    c中不包含任何抽象方法,所以c也不是函数式接口
# 用途
    lamdba表达式,允许你直接以内联的形式为函数式接口的抽象方法提供实现,并把整个表达式作为函数式接口的实例.
    例如:
        Runnable 接口中只定义了一个run方法,所以Runnable 是一个函数式接口,我们创建一个Runnbale的实现就可以这样写:
        Runnable r = ()->{System.out.println("----------------------");};
        这时我们有一个方法,接受的参数是Runnable类型的,如下:
        public static void process(Runnable r){
            r.run();
        }
        我们就可以这样写了:
        process(r);
        process(()->{System.out.println("----------------------");});
@FunctionInterceptface
    该注解是标明一个接口为函数式接口,如果该接口不符合函数式接口,会抛出错误信息
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

菜鸟阿达

成长总是需要时间和经历的

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值