我有一个从 Scala-2.9 序列化出来的相当复杂的对象图,我需要将它读入 Scala-2.10。然而,在对象图 Scala-2.10 深处的某个地方抛出:
! java.lang.ClassNotFoundException: scala.collection.JavaConversions$SeqWrapper
! at java.net.URLClassLoader$1.run(URLClassLoader.java:366) ~[na:1.7.0_21]
! at java.net.URLClassLoader$1.run(URLClassLoader.java:355) ~[na:1.7.0_21]
! at java.security.AccessController.doPrivileged(Native Method) ~[na:1.7.0_21]
! at java.net.URLClassLoader.findClass(URLClassLoader.java:354) ~[na:1.7.0_21]
! at java.lang.ClassLoader.loadClass(ClassLoader.java:423) ~[na:1.7.0_21]
! at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) ~[na:1.7.0_21]
! at java.lang.ClassLoader.loadClass(ClassLoader.java:356) ~[na:1.7.0_21]
! at java.lang.Class.forName0(Native Method) ~[na:1.7.0_21]
! at java.lang.Class.forName(Class.java:266) ~[na:1.7.0_21]
! at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:623) ~[na:1.7.0_21]
...
将此序列化对象加载到 Scala-2.10 中的最简单方法是什么?该对象使用 Scala-2.9 正确反序列化,但看起来事情在标准库中已经移动。现在大部分成员scala.collection.JavaConversions
都在scala.collection.convert.Wrappers
展望未来,我还对持久化大型复杂对象图的更健壮的方法感兴趣,而不必为所涉及的每个类显式指定序列化。