繁体   English   中英

如何在Kotlin中替换长链的forEach {}语句?

[英]How to replace long chain of forEach{} statements in Kotlin?

我正在处理一种情况,我在活动中收到一个通用对象,该对象与房间数据库中的其他对象有很多关系。 我需要访问一个低级对象,并且必须使用forEach进行多次迭代,例如:

items.forEach{ item -> 
   item.categories.forEach{ category ->
      category.dataTypes.forEach{ dataType ->
         dataType.configValues.forEach{ value ->
            if (value) (...) 
         }
      }
   }
}

拥有这样的陈述链感觉很烦。 它看起来像是错误的代码。 有没有办法减少Kotlin中的样板?

以前的平面映射怎么样?

items.flatMap { it.categories }
    .flatMap { it.dataTypes }
    .flatMap { it.configValues }
    .filter { ... your filter ... }
    .forEach { ... }

链实际上仍然在那儿,但是被弄平了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM