我有一个neo4j查询,该查询返回一个很可能不会空的节点列表,但在某些情况下可能会返回null。如何在地图或Flatmap操作中检查无效结果?
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 nodes
脱离了范围。
val nodes = {...}
是类型Future[List[String]]
任何帮助都会很棒!
尝试 flatMap(Option(_))
so
record
.get("assetList")
.asList
.asScala
.flatMap(Option(_))
.map(_.toString)
.toSet
例如
List(1,null,3).flatMap(Option(_)).map(_.toString).foreach(println)
输出
1
3
这是因为Option(null)
是None
,并且None
S被flatMap
丢弃。