【发布时间】:2015-09-18 14:50:04
【问题描述】:
Java 8 foreach 流尝试移动到循环中的下一项时遇到问题。我无法设置像continue; 这样的命令,只有return; 有效,但在这种情况下您将退出循环。我需要继续循环中的下一个项目。我该怎么做?
示例(不工作):
try(Stream<String> lines = Files.lines(path, StandardCharsets.ISO_8859_1)){
filteredLines = lines.filter(...).foreach(line -> {
...
if(...)
continue; // this command doesn't working here
});
}
示例(工作):
try(Stream<String> lines = Files.lines(path, StandardCharsets.ISO_8859_1)){
filteredLines = lines.filter(...).collect(Collectors.toList());
}
for(String filteredLine : filteredLines){
...
if(...)
continue; // it's working!
}
【问题讨论】:
-
我需要继续循环中的下一项。
-
他的意思是,使用您显示的代码,没有
continue仍然会在没有任何功能更改的情况下移动到下一个项目。 -
如果目标是避免在调用 continue 之后执行行,并且您没有向我们展示,只需将所有这些行放在
else块中。如果continue之后没有任何内容,则删除 if 块并继续:它们没用。