Java 8链接操作

时间:2016-06-08 16:25:39

标签: java parallel-processing java-8 java-stream chain

我有一些Java代码,我想用Java 8的流链接在一起。这是当前状态下的代码:

public class FooOperations {
    public List<FooB> getFooB() {
        List<FooA> fooAs = fooAOperation.getFooA();
        List<FooB> fooBs = fooBOperation.getFooB(fooAs);
        return fooBs;
    }
}

public class FooAOperation {
    public List<FooA> getFooA() {
        return foos.parallelStream().map(build()).filter(Objects::nonNull).collect(Collectors.toList());
    }
}

public class FooBOperation {
    public List<FooB> getFooB(List<FooA> fooAs) {
        return fooAs.parallelStream()
                    .map(fooA -> generateFooB(fooA))
                    .collect(Collectors.toList());
    }
}

但我想将这些操作链接到FooOperations类中的一行。像这样:

return fooAOperation.getFooA().map(fooA -> FooBOperation::getFooB(fooA)).collect(Collectors.toList());

这需要FooAOperation类返回流而不是列表。

我的目标是将这两个进程链接在一起,以便FooBOperation在开始处理之前不必等待填充FooA个完整的DateFormat dateFormat = new SimpleDateFormat("yyyyMMdd_HHmmss"); 个对象列表;我想这样做,以便它们可以在它们准备好后立即开始单独处理。有点像消息队列。

最好的方法是什么?

0 个答案:

没有答案