在flatmap中检查零

  • 本文关键字:flatmap scala scope null
  • 更新时间 :
  • 英文 :


我有一个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丢弃。

相关内容

  • 没有找到相关文章

最新更新