为什么SootMethod无法序列化?

时间:2019-01-02 06:19:57

标签: java serialization soot

我正在用烟尘对Java程序进行编程分析。我自定义一个类,其中包括一个类型为SootMethod的字段。我想保存大量这些对象,并在另一个程序中使用它们。因此,我发现序列化符合我的要求。但是,由于SootMethod,它触发了NotSerializableException。

如果要使用此SootMethod字段保存对象,该怎么办?为什么SootMethod无法序列化?

1 个答案:

答案 0 :(得分:0)

可能是因为SootMethod未实现java.io.Serializable,所以无法序列化此Class的实例,因此,如果要序列化包含SootMethod类型字段的对象,则可以2种方法:

  1. 将此字段设为transient!因此可以序列化该对象,但是在反序列化该对象时,该字段将为null。
  2. 使SootMethod类可以通过实现java.io.Serializable对该类进行序列化。

通常,如果实现java.io.Serializable接口并且所有字段也都实现此接口,并且如果某个字段不实现它,那么该字段必须是瞬态的。