Scala 检查flatmap中的null
我有一个Neo4J查询,它返回的节点列表很可能不会为空,但在某些情况下可能返回null。如何在映射或平面映射操作中检查空结果Scala 检查flatmap中的null,scala,scope,null,Scala,Scope,Null,我有一个Neo4J查询,它返回的节点列表很可能不会为空,但在某些情况下可能返回null。如何在映射或平面映射操作中检查空结果 val nodes = { storeAPI.NeoQuery(parentNodesIDs).resultList().map { _.flatMap { record => record.get("assetList").asList.asScala.map(_.toString).toSet
val nodes = {
storeAPI.NeoQuery(parentNodesIDs).resultList().map {
_.flatMap {
record =>
record.get("assetList").asList.asScala.map(_.toString).toSet
}
}.recover {
case e: Exception =>
logger.error(s"Failure in getSimplifiedAssetListFromContainer: ", e)
throw e
}
}
我已经尝试将storeAPI.NeoQuery(parentNodeIDs.resultList()
放入上述块之外的val
中,但是val节点
超出了范围
val节点={…}
的类型为Future[List[String]]
任何帮助都会很好 试试flatMap(选项())
像这样
record
.get("assetList")
.asList
.asScala
.flatMap(Option(_))
.map(_.toString)
.toSet
比如说
List(1,null,3).flatMap(Option(_)).map(_.toString).foreach(println)
输出
1
3
这是因为选项(null)
是None
,并且None
被flatMap
丢弃