Lambda表达式简单理解

Lambda表达式

Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性。Lambda 允许把函数作为一个方法的参数(函数作为参数传递进方法中)。使用 Lambda 表达式可以使代码变的更加简洁紧凑。

Lambda表达式省去面向对象的条条框框,格式有3个部分组成:参数、箭头、代码

(参数类型  参数名称)->{  代码语句  }
小括号内的语法与传统方法参数列表一致:无参数则留空;多个参数则用逗号分隔。
`->`是新引入的语法格式,代表指向动作。
大括号内的语法与传统方法体要求基本一致

使用Lambda表达式(无参无返回)

// demo01 接口 ,内含唯一抽象方法aa(),无参,无返回值
interface Demo01{
    abstract void aa();
}

public class Test_01 {
    public static void main(String[] args) {
        // 使用Lambda表达式调用demo01test方法
        demo01test( ()->{ System.out.println("aa"); } );
    }
    public static void demo01test(Demo01 demo01){
        demo01.aa();
    }
}

使用Lambda表达式(有参有返回)

// Demo02接口,内涵唯一的抽象方法demo02() ,有两个int参数,返回值为int
interface Demo02{
    int demo02(int a , int b);
}
public class Test_03 {
    public static void main(String[] args) {
        // 使用Lambda表达式调用aa()方法,返回a,b的值的和
        System.out.println(aa(12, 13, (a, b) -> {
            return a + b;
        }));
    }
    public static int aa(int a, int b, Demo02 demo02){
        return demo02.demo02(a,b);
    }
}
// 输出:25

Lambda表达式省略格式

Lambda表达式强调的是“做什么”而不是“怎么做,所以凡是可以根据上下文推导得知的信息,都可以省略。例如上例中还可以使用Lambda的省略写法:

aa(132, 13, (a, b) -> a+b);

省略规则

aa(12, 13, (int a,int  b) -> { return a + b; });
aa(132, 13, (a, b) -> a+b);
  1. 小括号内参数的参数类型可以省略;
  2. 如果大括号内有且仅有一个语句,则无论是否有返回值,都可以省略大括号、return关键字及语句分号
  3. 如果小括号内有且仅有一个参数,则小括号可以省略
aa(12,(a) -> {return a;});
aa(12,a->{ return a; });

interface Demo02{
    int demo02(int a );
}

使用Lambda表达式的前提

  1. 使用Lambda表达式必须具有接口,且要求接口中有且仅有一个抽象方法(也就是函数式接口)

  2. 使用Lambda表达式必须具有上下文推断

    也就是方法的参数或局部变量类型必须为Lambda对应的接口类型,才能使用Lambda作为该接口的实例

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值