我是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]
答案 0 :(得分:3)
您的s
变量已从类型为session.participants
的{{1}}中提取出来,因此您获得了Option[Seq[Participant]]
。如果你想循环参与者,你需要一个list / seq,所以:
Seq[Participant]