Java 8于2014年初发布。本文列出了重要的 Java 8 特性,并提供了 lambda 表达式、Java 流、函数式接口、接口默认方法和日期时间 API 更改等功能的代码示例。
1. Lambda表达式
使用Scala的同学已经很熟悉Lambda表达式了。在Java编程语言中,Lambda表达式只是一个匿名函数,就是没有名称并且没有任何修饰符的函数。
1.1 lambda语法
lambda 表达式的基本语法:
//如果 lambda 表达式的正文具有单个语句,则可以不要大括号
//并且匿名函数的返回类型与正文表达式的返回类型相同。
(parameters) -> expression
// 当正文中有多个语句时,这些语句必须括在大括号中。
(parameters) -> { statements; }
//空括号用于表示一组空参数
() -> expression
例如:
//这个lambda表达式接收两个参数并返回它们的和
(x, y) -> x + y
上面这个例子可以作为两个整型数字相加,也可以用于连接两个字符串,Java会根据上下文自动进行类型匹配。
1.2 lambda编写规则
- lambda 表达式可以有零个、一个或多个参数。
- 参数的类型可以显式声明,也可以从上下文中推断出来。
- 多个参数括在小括号中,并用逗号分隔。空括号用于表示一组空参数。
- 当只有单个参数时,如果推断出其类型,则