Невозможно переопределить метод writeObject (сериализуемая модель) в AnyLogic.JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Невозможно переопределить метод writeObject (сериализуемая модель) в AnyLogic.

Сообщение Anonymous »

У меня есть модель на основе AnyLogic, и я попытался ее сериализовать, но получил ошибку StackOverflow. Насколько я понимаю, основная причина - это циркулярная ссылка на агента. Однако я не могу его найти.
Я пытался переопределить метод AnyLogic writeObject в
моей функции основного агента, чтобы найти последнего сериализующего агента.

Код: Выделить всё

try {
FileOutputStream fos = new FileOutputStream("t.tmp");
ObjectOutputStream out = new ObjectOutputStream(fos) {
@Override
protected void writeObjectOverride(Object obj) {
System.out.println("Serializing: " + obj.getClass().getName() + " - " + obj);
super.writeObjectOverride(obj);
}
};

out.writeObject(this);
out.close();
System.out.println("Serialization completed successfully");

} catch (IOException e) {
System.err.println("Serialization error: " + e.getMessage());
e.printStackTrace();
}
Я запускаю свою модель в режиме отладки с точками останова на переопределяющем методе, но ничего не происходит. Модель запускается, и когда я вызываю эту функцию, она выполняет метод Anylogic writeObjectOverride (я не вижу никаких сообщений в консоли, и мои точки останова не сработали)
Что случилось?

Подробнее здесь: https://stackoverflow.com/questions/797 ... n-anylogic
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»