不是Serializable产品的成员

Cit*_*lin 1 serialization scala

我等待多个未来的回应:

val futureResult =
      for{
      futureEmployee    <- this.getEmployeeById(effortConsulting.sObject.createdById)
      futureForCompany  <- this.getCompanyById(effortConsulting.sObject.forCompany)
      futureFromCompany <- this.getCompanyById(effortConsulting.sObject.fromCompany)
    } yield List(futureEmployee, futureForCompany, futureFromCompany)

futureResult onComplete {
      case Success(futureResponse) => {
    println(futureResponse)

      } [...]
Run Code Online (Sandbox Code Playgroud)

println输出以下内容:

List(Employee([...]), Company([...]), Company([...]))
Run Code Online (Sandbox Code Playgroud)

好的,这很好.但现在我想像这样使用这些对象:

    val employee      = futureResponse(0)
    val fromCompany   = futureResponse(2)
    val forCompany    = futureResponse(1)

    println(forCompany.name)
Run Code Online (Sandbox Code Playgroud)

这不起作用.我得到以下编译错误:

值name不是具有Seri​​alizable的Product的成员

我怎样才能解决这个问题以及为什么会这样?

Ale*_*nov 6

a的所有成员List[A]必须具有相同的类型A.所以如果你试图构造一个List包含不同类型成员的东西,你实际上得到了一个List常见的超类型.

因为所有案例类都扩展ProductSerializable特征,如果您尝试创建包含不相关案例类的列表,则会得到一个List[Product with Serializable].当然,如果你试图从该列表中获取一个元素,那么你得到一个Product with Serializable.