栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

lambda表达式特性——详解

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

lambda表达式特性——详解

        开始之前,先考虑这样一个问题,我们传入代码来检查一个字符串的长度是否比另外一个字符串短?这里要计算:first.length() - second.length()

first和second是什么?他们都是字符串。Java是一种强类型语言,所以我们要指定它们的类型:

(String first,String second)
    -> first.length() - second.length()

        这就是你看到的第一个lambda表达式。lambda表达式就是一个代码块,以及必须传入代码的变量规范。

        你已经见过Java中的一种lambda表达式:参数,箭头(->)以及一个表达式。如果代码要完成的计算无法放在一个表达式中,就可以像写方法一样,把这些代码放在{ }中,并包含显示的return 语句,例如:

(String first,String second) ->
    {
        if(first.length() < second,length() ){
            return -1;
        }else if(first.length() > second.length() ){
            return 1;
        }else return 0;

}

        及时lambda表达式没有参数,仍然需要提供括号,就像无参数方法一样:

() -> { for (int i = 100; i >= 0; i--)
        System.out.println(i);
        }

        如果可以推导出一个lambda表达式的参数类型,则可以忽略其类型。例如:

Comparaor comp = (first,second) -> first.length() - second.length();

        在这里,编译器可以推导出first和second必然是字符串,因为这个lambda表达式将赋值给一个字符串比较器。

        如果方法只有一个参数,而这个参数的类型可以推导得出,那么甚至还可以省略小括号。

        无需指定lambda表达式的返回值类型。lambda表达式的返回类型总是会由上下文推导得出,例如:

(String first,String second) -> first.length() - second.length()

        可以在int类型结果的上下文中使用。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/572761.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号