口:
私は、ストリームAPIを利用して自分のコードを短縮する方法を知っていただきたいと思います。のは、私はこのような方法があるとしましょう:
public static void createFile( String directoryPath, String fileName )
そして、私は同じパラメータで、この方法を5回呼び出すしたいと思います。例えば
for (int i = 0; i < 5; i++) {
Utils.createFile(getDirectoryLocation(), "test.txt");
}
私はこのような何かを行うことができます知っています:
IntStream.rangeClosed(1, 5).forEach(Utils::someMethod);
しかし、ここで私は、メソッドに1つの整数値を渡しています。誰も私にいくつかのヒントや答えを与えることができますか?
ユージン:
ストリームは、単純なループが良いIMOだろう、ここでは本当に便利ではありません。あなたはしかし、もし本当にしたかった、あなたは、ラムダ(Xを無視して...)を経由して、それを書くことができます:
IntStream.rangeClosed(1, 5).forEach(x -> Utils.createFile(getDirectoryLocation(), "test.txt"));
私は1つの以上醜いの方法は、可能性が推測します:
Stream.generate(() -> "test.txt")
.limit(5)
.forEach(x -> Utils.createFile(getDirectoryLocation(), x));
またはよりよいです:
Collections.nCopies(5, "test.txt")
.forEach(x -> Utils.createFile(getDirectoryLocation(), x));