首页 > 解决方案 > 定义嵌套结构类型

问题描述

我有以下问题:有一个元素列表选项我想通过避免在选项上使用 .get 来将其转换为元素列表。以下是我要更改的代码片段:请知道如何修改它:

val receivedMessages = PubSubClient.getPulledMessages(client,subscriptionFullName,pullRequest).get
        store(receivedMessages
          .map(x => {
            val sm = new PubsubSparkMessage
            sm.message = x.getMessage
            sm
          })
          .iterator)

我想替换行中的 .get PubSubClient.getPulledMessages(client,subscriptionFullName,pullRequest).get

此致

标签: scaladictionaryoption

解决方案


此功能将完成您​​想要的:

def listOptToList[T](listOpt: Option[List[T]): List[T] = listOpt.toList.flatten

所以你的代码看起来像:

val receivedMessages = PubSubClient.getPulledMessages(client,subscriptionFullName,pullRequest)

store(listOptToList(receivedMessages.map { x =>
    val sm = new PubSubSparkMessage
    sm.message = x.getMessage
    sm
  }).iterator)

推荐阅读