4
此代码...如何序列化自定义对象在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)
...试图重新加载对象的时第二次尝试块。当类是预定义的类(如java.util.List)时,它可以正常工作。上述代码的也可以在将行换行转换为Java时正常工作。
如何在Groovy中使用它?
我猜想,如果不尝试一下就可以工作,事实上,这是我在Groovy中使用序列化的最终目标。然而,使用Groovy中的单个源文件来实验新的Java/Groovy特性是非常方便的,然后使用多个文件,包,性能增强等对其进行正式化。因为**在线转换为线时代码工作正常到Java **中,也许Groovy也应该启用它。 –
如果你有一个singel源文件并执行它,那么“class A”可能会被编译好几次......通常会得到一个wiered的名字。这也可能导致奇怪的行为。 –