码迷,mamicode.com
首页 > 其他好文 > 详细

Lambda表达式

时间:2020-09-02 18:12:48      阅读:51      评论:0      收藏:0      [点我收藏+]

标签:lambda   参数   lint   oid   包括   object类   情况下   param   tostring   

Lambda表达式概念

Lambda表达式,从本质来讲,是一个匿名函数。可以使用这个匿名函数,实现接口中的方法。

函数式接口

一个接口中,要求实现类必须实现的抽象方法,有且只有一个。

interface Test() {
    void test();
    default void test() {} //default方法子类不是必须实现的
    String toString();  //toString方法,是Object类中定义的方法。实现类在实现接口时,toString可以不重写。
}

@FunctionalInterface

用在接口之前,判断这个接口是否是一个函数式接口。

Lambda表达式的语法

Lambda表达式,本质上就是一个匿名函数。因此写lambda表达式时,不需要关心方法名是什么。

参数列表 和 方法体

lambda表达式的基础语法:

(参数) -> {
    方法体
};

参数部分:方法的参数列表,要求和实现的接口中的方法参数部分一致,包括参数的数量和类型
方法体部分:方法的实现部分,如果接口中定义的方法有返回值,则在实现的时候,注意返回值的返回
->:分隔参数部分和方法体部分。

Lambda表达式语法精简

参数部分精简

  • 参数类型:参数的类型可以省略(要省略,每个参数的类型都必须省略)
  • 参数的小括号:只有当参数的数量是一个时;省略掉小括号的同时,必须要省略参数的类型

方法体部分精简

  • 方法体大括号:当一个方法体重的逻辑,有且只有一句的情况下,大括号可以省略
  • return的精简:如果一个方法中唯一的一条语句是一个返回语句,此时在省略掉大括号的同时,也必须省略掉return
//        SingleReturnSigleParameter lambda1 = (a) -> {
//            return a*a;
//        };
        SingleReturnSigleParameter lambda1 = a -> a*a;

Lambda表达式

标签:lambda   参数   lint   oid   包括   object类   情况下   param   tostring   

原文地址:https://www.cnblogs.com/yihangjou/p/13543899.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!