Java 11 Lambda中的var

来源:这里教程网 时间:2026-02-17 21:22:19 作者:

Java 11 Lambda中的var

Java 11允许在lambda表达式中使用var,并且可以用它来应用修饰符到局部变量。

(@NonNull var value1, @Nullable var value2) -> value1 + value2

考虑以下示例 –

ApiTester.java

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);   }}

输出

JavaHTML

限制

在使用lambda表达式中,使用var存在一些限制。

var参数不能与其他参数混合使用。以下代码将引发编译错误。
(var v1, v2) -> v1 + v2
var参数不能与其他具有类型的参数混用。下面的代码将会报编译错误。
(var v1, String v2) -> v1 + v2
var参数只能与括号一起使用。以下会引发编译错误。
var v1 -> v1.toLowerCase()

相关推荐