java - Java 8 foreach 函数中多于 1 个命令

标签 java lambda java-8

是否可以在 Java 8 引入的 Map.foreach 函数中使用多个命令?

所以改为:

map.forEach((k, v) -> 
System.out.println(k + "=" + v));

我想做这样的事情:

map.forEach((k, v) -> 
System.out.println(k)), v.forEach(t->System.out.print(t.getDescription()));

假设 k 是字符串,v 是集合。

最佳答案

lambda syntax允许主体有两种定义:

  • 单个返回值的表达式,例如:x -> x*2
  • 多条语句,用大括号括起来,例如:x -> { x *= 2;返回 x; }

第三种特殊情况是允许您在调用 void 返回方法时避免使用花括号,例如:x -> System.out.println(x).

关于java - Java 8 foreach 函数中多于 1 个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34557412/

相关文章:

Jinja2 中的 Python lambda

Spring 中的 Java 8 Optional<?> 验证解包器

java - 关系有一个,继承和类型转换

java - Spring XSD的访问报错

java - 将自定义请求编码器提交到 JAXRSClientFactory

c# - C# lambda 编译成什么?堆栈框架,匿名类型的实例,还是?

java - 追加现有数组

java - 如何使用 Java Stream map 实现不同类型之间的映射?

java - Java中的方法重考

java - 从 java7 tomcat7 迁移到 java8 tomcat8 时启动 tomcat 时出错