Groovy中如何序列化自定义对象

Vor*_*eir 5 groovy

这段代码...

class A implements Serializable{
  String str
  int n
}

try{
  def a= new A(str:'abc', n:7)
  def out= new ObjectOutputStream(new FileOutputStream('serializedObject.obj'))
  out.writeObject(a)
  out.close()
}finally{}

try{
  def inp= new ObjectInputStream(new FileInputStream('serializedObject.obj'))
  def a2= inp.readObject()
  inp.close()
}finally{}
Run Code Online (Sandbox Code Playgroud)

...产生错误...

java.lang.ClassNotFoundException: A
    at java_io_ObjectInput$readObject.call(Unknown Source)
    at otherRun.run(otherRun.groovy:16)
Run Code Online (Sandbox Code Playgroud)

...当尝试在第二个 try 块中重新加载对象时。当该类是一个预定义的类(例如 java.util.List)时,它可以正常工作。将line-for-line 转换为 Java 时上面的代码也可以正常工作

我怎样才能让它在 Groovy 中工作?

Ang*_*ere 4

将您的“A 类”放入其自己的文件中,并确保您读取对象的“A.class”文件可用(在类路径中)。