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

时间:2011-08-25 10:31:28

标签: 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{}

...产生错误......

java.lang.ClassNotFoundException: A
    at java_io_ObjectInput$readObject.call(Unknown Source)
    at otherRun.run(otherRun.groovy:16)

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

如何让它在Groovy中运行?

1 个答案:

答案 0 :(得分:4)

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