【发布时间】:2018-02-23 17:59:15
【问题描述】:
trait MetaData {
def time:DateTime
}
case class ImageMetadata(time: DateTime, name: String) extends MetaData
case class ObjectMetadata(time: DateTime, tags: List[String]) extends MetaData
case class ImageTypeMetadata(time: DateTime, name: String, tags: List[String])
我有一个返回 Future[List[ImageMetadata]] 和 Future[List[ObjectMetadata]] 的方法;我想通过ImageMetadata 和ObjectMetadata 中的time 字段组合这两个列表,并想构造Future[List[ImageTypeMetadata]]。
我能有最好的选择吗?
【问题讨论】:
-
你尝试了什么?发生了什么?你期望会发生什么?什么是 DateTime,导入 ...?
-
解释你卡在哪里了? “我能在这方面有最好的选择吗?”是什么意思?
-
您是同时等待所有期货,然后合并列表,还是其中一个期货正在推动这个过程?
-
DateTime是import org.joda.time.DateTime。为了简化我的问题,我要如何结合List[ImageMetadata]和List[ObjectMetadata]来构建List[ImageTypeMetadata]。需要关于我可以使用哪些列表功能的建议? -
“通过
time合并两个列表”的含义并不完全清楚。假设您有 3 个ImageMetadata的List,它们都具有相同的time值。假设您有一个List和 2 个ObjectMetadata,两者都具有与第一个列表相同的time。这些应该如何结合?结果会是一个包含六个ImageTypeMetadata元素的列表吗?假设没有time成员在任一列表中匹配?结果会是一个空列表吗?具有预期结果的示例数据会有所帮助。
标签: scala collections