1
我想在scala(2.10)中序列化一個可變的PriorityQueue
,並在將對象寫入ObjectOutputStream時獲得一個NotSerializableException
。我做了一個簡單的測試案例:在scala中序列化一個優先級隊列
import java.io.{ByteArrayOutputStream, ObjectOutputStream}
import scala.collection.mutable
object Test extends App {
val pq = new mutable.PriorityQueue[Int]()
val oos = new ObjectOutputStream(new ByteArrayOutputStream())
oos.writeObject(pq)
}
唯一的例外是
Exception in thread "main" java.io.NotSerializableException:scala.collection.mutable.PriorityQueue$ResizableArrayAccess
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1180)
at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1528)
at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1493)
at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1416)
at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1174)
at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:346)
at Test$.main(Test.scala:7)
這似乎是一個PriorityQueue應該是序列化的,是有什麼我可以做些什麼來解決這個問題?
現在,我使用自定義序列轉換到一個數組和背部,我將提交錯誤報告,以及。謝謝 – Kyprus