0

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

如果我想用这个 SootMethod 字段保存对象,我应该怎么做?为什么 SootMethod 不可序列化?

4

1 回答 1

1

可能是因为SootMethod没有实现java.io.Serializable所以不可能序列化这个 Class 的实例,所以如果你想序列化包含SootMethod类型字段的对象,你有两种方法:

  1. 做这个领域transient!因此可以序列化对象,但是当您反序列化对象时,此字段将为空。
  2. 通过实现该类使SootMethod类可序列化java.io.Serializable

通常,如果实现java.io.Serializable接口并且所有字段也实现此接口并且如果字段未实现它,则该类可以是可序列化的,因此该字段必须是瞬态的。

于 2019-01-02T09:45:07.130 回答