lambda表达式:语法
来源:互联网 发布:手机淘宝如何复制链接 编辑:程序博客网 时间:2024/05/17 07:39
.第一个lambda表达式:
(String first, String second) -> Integer.compare(first.length, second.length())
表达式的格式为:参数、箭头 -> 表达式
如果负责计算的代码无法用一个表达式表示,那么可以用编写方法的方式来编写:即用 {} 包裹代码并明确使用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=0; i<100; i++) doWork(); }
如果一个lambda表达式的参数类型是可以被推导的,那么就可以省略它们的类型,例如:
Comparator<String> comp = (first, second) -> Integer.compare(first.length(), second.length());这里,编译器会推导出first和second必须是字符串,因为lambda表达式被赋给了一个字符串比较器。
如果某个方法只含有一个参数,并且该参数的类型可以被推导出来,甚至可以省略小括号:
EventHandler<ActionEvent> listener = event -> System.out.println("Thanks for clicking!");; //无须(event) -> 或 (ActionEvent event) ->
可以像对待参数一样向lambda表达式的参数添加注解或者final修饰符,如下:
(final String name) -> ...(@NonNull String name) -> ...
不需要为一个lambda表达式执行返回类型,它总是会从上下文中被推导出来,例如:
(String first, String second) -> Integer.compare(first.length(), second.length())可以被使用在期望结果类型为int的上下文中
在lambda表达式中,只在某些分支中返回值是不合法的。例如
(int x) -> { if (x >= 0) return 1;}
0 0
- Lambda表达式语法
- Java8: Lambda表达式语法
- java8 lambda表达式-语法
- Lambda 表达式语法
- lambda表达式:语法
- Lambda 表达式语法
- lambda表达式语法
- C++ AMP: Lambda表达式语法
- java8之lambda表达式语法
- Lambda表达式的基础语法
- [C#]Lambda表达式和Where语法
- C# 语法之美 Lambda 表达式
- C++11新语法--01 Lambda表达式
- Java8体验(一)lambda表达式语法
- lambda表达式及Stream语法解析
- [C#]Lambda表达式和Where语法
- Qt5 connect新语法:Lambda表达式
- Lambda表达式基本语法与应用
- 初级数据持久化
- 第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览
- 中文知识图谱构建方法研究1
- 长安大学新生赛 H题 拉面女神的魔盒
- 【Android】一些重要知识点整理
- lambda表达式:语法
- 【C/C++语法外功】传值&传引用&传指针
- 集成VVDocumenter的方法
- github readme.md 添加图片
- android(41)(支付宝服务和捕鱼达人)
- 我的c程序学习之路
- EventBus 和 BroadcastReceiver 的区别
- nodeType
- 蓝懿iOS 技术内容和心得 12.7