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不是具有Serializable的Product的成员
我怎样才能解决这个问题以及为什么会这样?
a的所有成员List[A]必须具有相同的类型A.所以如果你试图构造一个List包含不同类型成员的东西,你实际上得到了一个List常见的超类型.
因为所有案例类都扩展Product和Serializable特征,如果您尝试创建包含不相关案例类的列表,则会得到一个List[Product with Serializable].当然,如果你试图从该列表中获取一个元素,那么你得到一个Product with Serializable.
| 归档时间: |
|
| 查看次数: |
2671 次 |
| 最近记录: |