我认为标题是自我解释的。我需要在foreach循环方法中执行两个不同的方法。例如,我目前有
Files.walk(pathToHeaven).filter(Files::isRegularFile).forEach((path) -> doSomething(var1, path));
我可以修改此行以在doSomething()
之后执行第二种方法吗?
答案 0 :(得分:4)
当然,只需添加大括号:
Files.walk(pathToHeaven).filter(Files::isRegularFile).forEach((path) -> {
doSomething(var1, path);
System.out.println("Hi there");
}
);
以上内容符合Lambda Expressions:
的语法lambda表达式的语法如下。
(形式参数列表) - > {表达式或语句}
答案 1 :(得分:2)
是的,可能。
只需将您的陈述括在大括号中,如下:
Files
.walk(pathToHeaven)
.filter(Files::isRegularFile)
.forEach(
(path) -> {
doSomething(var1, path);
doSomethingElse(var2, path);
}
);