Java 8流。将两个参数传递给在forEach中调用的方法

时间:2018-07-09 05:41:32

标签: java java-8 java-stream

使用Java 8流API,我想要一种方法来调用接受两个参数的引用方法。 splitFileByMaxRows是引用方法,应以Stringint作为参数。有什么办法可以实现?

private void breakLargeFileIntoChunks(final File setlFile, int parentFileId) {
    LOG.info(LOG.isInfoEnabled() ? "*** Breaking Large File Into Chunks ***" : null);

    try (Chunker chunker = new Chunker(); 
         Stream<String> lines = Files.lines(Paths.get(setlFile.getAbsolutePath()))) {
        lines.forEach(chunker::splitFileByMaxRows);
    }
    catch (IOException e) {
        e.printStackTrace();
    }

}

1 个答案:

答案 0 :(得分:6)

您无法使用方法引用,因为您无法将int参数传递给它。

因此,请改用lambda表达式:

lines.forEach(s -> chunker.splitFileByMaxRows(s,someInt));