我正在为带有烟灰的Java程序进行编程分析。我自定义了一个类,其中包含一个类型为SootMethod的字段。我想保存大量这些对象并在另一个程序中使用它们。所以,我发现序列化符合我的要求。但是,由于SootMethod,它会触发NotSerializableException。
如果我想使用此烟灰方法字段保存对象,该怎么办?为什么烟灰方法不可序列化?
因为SootMethod
剂没有实现java.io.Serializable
所以不可能序列化这个类的实例,所以如果你想序列化包含SootMethod
类型字段的对象,你有两种方法:
- 使此字段
transient
!,以便可以序列化对象,但是当您反序列化对象时,此文件将为 null。 - 通过此类的实现
java.io.Serializable
使SootMethod
类可序列化。
通常,如果实现java.io.Serializable
接口并且所有字段也实现此接口,并且如果字段未实现它,则此文件必须是瞬态的,则类可以是序列化的。