Почему SootMethod не сериализуем? - PullRequest
0 голосов
/ 02 января 2019

Я занимаюсь анализом программ для Java-программ с использованием сажи Я настраиваю класс, который включает поле, тип которого - SootMethod. Я хочу сохранить большое количество этих объектов и использовать их в другой программе. Итак, я считаю, что сериализация отвечает моим требованиям. Тем не менее, он вызывает NotSerializableException из-за SootMethod.

Что мне делать, если я хочу сохранить объекты с этим полем SootMethod? Почему SootMethod не сериализуем?

1 Ответ

0 голосов
/ 02 января 2019

Вероятно, потому что SootMethod доза не реализует java.io.Serializable, поэтому невозможно сериализовать экземпляр этого класса, поэтому, если вы хотите сериализовать объект, содержащий поле типа SootMethod, у вас есть 2 способа:

  1. Сделать это поле transient!так что можно сериализовать объект, но при десериализации объекта этот файл будет нулевым.
  2. Сделать SootMethod Класс, сериализуемый реализацией java.io.Serializable для этого класса.

Обычно класс может быть сериализован, если реализует интерфейс java.io.Serializable, и все поля также реализуют этот интерфейс, и если поле не реализует его, поэтому это поле должно быть временным.

...