【发布时间】:2017-05-15 14:09:37
【问题描述】:
假设我有一个包含一个集合的对象,该集合上的每个元素都包含一个集合,每个集合都包含一个集合。
我想迭代最深的对象并对其应用相同的代码。
命令式的方法很简单,但有没有办法对这一切进行 lambda-fy?
今天的代码如下所示:
My object o;
SecretType computedThingy = 78;
for (FirstLevelOfCollection coll : o.getList()) {
for (SecondLevelOfCollection colColl : coll.getSet()) {
for (MyCoolTinyObjects mcto : colColl.getFoo()) {
mcto.setSecretValue(computedThingy);
}
}
}
我可以看到如何从最深的循环中制作一个 lambda:
colColl.getFoo().stream().forEach(x -> x.setSecretValue(computedThingy)
但是我可以做更多吗?
【问题讨论】: