lamada 表达式

学习**Java8**之前,肯定得对lamada表达式有所了解的。

Lambda表达式可以认为是对匿名内部类的一种简化,但不是所有的匿名内部类都可以简化为Lambda表达式。只有函数式接口的匿名内部类才可以使用**Lambda**表达式来进行简化。函数式接口不同于普通接口,较为特殊化。接口当中只有一个抽象方法是需要我们去实现的,Lambda表达式正好是针对这个唯一的抽象方法使用。

语法格式:

参数列表 箭头 方法体 总结:(参数列表)->{方法体}

  • 参数类型可以省略。 但是有多个参数的情况下,不能只省略一个
  • 如果参数有且仅有一 个,那么小括号可以省略
  • 如果代码块的语句只有一 条,可以省略大括号和分号,甚至是return

总结:

  • Lamada表达式可以理解为一种匿名函数:他没有名称,但有参数列表、函数主体、返回类型,可能还会有一个可以抛出的异常列表。
  • Lamada表达式可以让你的代码更加简洁的传递代码。
  • 函数式接口就是仅仅声明了一个抽象方法的接口。
  • 只有在接受函数式接口的地方才可以使用Lamada表达式。
  • Lamada表达式允许你直接内联,为函数式接口的抽象方法提供实现,并且将整个表达式作为函数式接口的一个实例。
  • Java8自带一些常用的函数式接口、放在java.util.function包里,包括Predicate、Function<T、R>、Supplier、Consumer、&&BinaryOperator。
  • 为了避免装箱操作,对Predicate、Function<T、R>等通用的函数式接口的原始类型特化:IntPredicate、IntToLongFuncation等。
  • 环绕执行模式(即在方法所必须的代码中间,你需要执行点什么操作,比如分配资源和清理)可以配合Lamada提高灵活性和可重要性。
  • Lamada表达式所需要代表的类型称为目标类型。
  • 方法引用让你重复使用现有的方法实现并传递他们。
  • Comparator、Predicate 和Funcation等函数式接口都有几个可以用来结合lamada表达式的默认方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值