Я пытаюсь сериализовать изменяемый PriorityQueue
в scala (2.10) и получаю NotSerializableException
при записи объекта в ObjectOutputStream. Я сделал простой тест:Сериализация очереди приоритетов в 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