扫码一下
查看教程更方便
Java 11 允许在 lambda 表达式中使用 var 并且可以将修饰符应用于局部变量。
(@NonNull var value1, @Nullable var value2) -> value1 + value2
考虑下面的示例
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@interface NonNull {}
public class APITester {
public static void main(String[] args) {
List<String> tutorialsList = Arrays.asList("Java", "HTML");
String tutorials = tutorialsList.stream()
.map((@NonNull var tutorial) -> tutorial.toUpperCase())
.collect(Collectors.joining(", "));
System.out.println(tutorials);
}
}
上述代码运行结果如下
Java
HTML
在 lambda 表达式中使用 var 有一定的限制。
(var v1, v2) -> v1 + v2
(var v1, String v2) -> v1 + v2
var v1 -> v1.toLowerCase()