ループ内の次の項目に移動しようとする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
いずれにせよ機能的な変更なしに次の項目に移動することはできないということです。
else
ブロックに入れてください。の後continue
に何もない場合は、ifブロックとcontinueをドロップします。それらは役に立たないのです。