从scala对象获取列表

时间:2016-06-21 11:25:25

标签: scala loops

我是scala的新手,我试图从scala对象中获取另一个列表,这是我的模型:

case class Session(
    _id: Option[String],
    participants: Option[Seq[Participant]])
  case class Participant(
    contact: Contact,
    participantStatus: Option[String])
Contact.scala
  case class Contact(
    firstName: Option[FirstName],
    lastName: Option[LastName],
    address: Option[Address])
Address.scala
  case class Address(
    email: Option[String])

使用此循环:

for (s <- session.participants) println(s)

我明白了:

List(Participant(Contact(Some(FirstName(5m,Some(5),Some(5))),Some(LastName(5,Some(5),Some(5))),Some(Address(None,None,None,None,None,Some(5),Some(5),Some(5),Some(email1@gmail.com),None)),None,None),None), Participant(Contact(Some(FirstName(contact1,Some(contact1),Some(contact1))),Some(LastName(contact1,Some(contact1),Some(contact1))),Some(Address(None,None,None,None,None,Some(1),Some(1),Some(1),Some(email2@gmail.com),None)),None,None),None))

当我尝试:println(s.contact) 我得到:value contact is not a member of Seq[models.Session.Participant]

1 个答案:

答案 0 :(得分:3)

您的s变量已从类型为session.participants的{​​{1}}中提取出来,因此您获得了Option[Seq[Participant]]。如果你想循环参与者,你需要一个list / seq,所以:

Seq[Participant]