Java 如何在Scala中序列化远程参与者的集合?

Java 如何在Scala中序列化远程参与者的集合?,java,serialization,scala,collections,Java,Serialization,Scala,Collections,在Java中,所有集合都是可序列化的,但是当我想用远程参与者发送scala集合时,我总是会遇到异常。它总是以例外告终。集合是可变的,并且具有随机访问,这一点很重要 [error] scala.actors.remote.DelegateActor@5090d8ea: caught java.io.NotSerializableException: scala.collection.mutable.ArraySeq [error] java.io.NotSerializableException:

在Java中,所有集合都是可序列化的,但是当我想用远程参与者发送scala集合时,我总是会遇到异常。它总是以例外告终。集合是可变的,并且具有随机访问,这一点很重要

[error] scala.actors.remote.DelegateActor@5090d8ea: caught java.io.NotSerializableException: scala.collection.mutable.ArraySeq
[error] java.io.NotSerializableException: scala.collection.mutable.ArraySeq
[error]     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
[error]     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
[error]     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
[error]     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
[error]     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
集合嵌套到另一个类中,然后通过网络发送

@serializable
class NetworkSendable[A]{
    val data = new collection.mutalbe.ArraySeq[A](10)
}

它们不是为序列化而定义的,因此您可能必须将它们包装在不同的结构中,并在到达时将其展开


另一种选择是自定义序列化机制,但这可能容易出错

它们不是为序列化而定义的,因此您可能必须将它们包装在不同的结构中,并在到达时将其展开


另一种选择是自定义序列化机制,但这可能容易出错

目前我正在使用java.util.ArrayList.asScala,因为这样做是可行的,但是真的没有可序列化的scala集合吗?我不敢相信,因为通过网络发送收藏应该是一项相当普遍的任务。你认为这些集合没有序列化是有原因的吗?目前我使用的是java.util.ArrayList.asScala,因为它可以工作,但是真的没有可序列化的scala集合吗?我不敢相信,因为通过网络发送收藏应该是一项相当普遍的任务。您认为这些集合没有序列化是有原因的吗?