教程 > java 11 教程 > 阅读:45

java 11 lambda 中的变量——迹忆客-ag捕鱼王app官网

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 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 参数不能与其他参数混合使用。 以下将引发编译错误。
    (var v1, v2) -> v1   v2
    
  • var 参数不能与其他类型的参数混合。 以下将引发编译错误。
    (var v1, string v2) -> v1   v2
    
  • var 参数只能与括号一起使用。 以下将引发编译错误。
    var v1 -> v1.tolowercase()
    

查看笔记

扫码一下
查看教程更方便
网站地图