Если вы хотите, чтобы вся структура была сериализуемой, то вам нужно также сделать части сериализуемыми.На практике это означает, что вам нужно, чтобы классы Dragon, Hero и Item реализовали Serializable.Это просто интерфейс маркера, поэтому вам нужно всего лишь добавить implements Serializable
.Некоторые идентификаторы (по крайней мере, затмение, в любом случае) могут жаловаться на то, что вы должны добавить private long SerialVersionUID
, который может немного оптимизировать сериализацию, а может и нет - в любом случае это не является строго необходимым.
Это требование рекурсивно - любоеоб их подчастях, которые являются пользовательскими или не сериализуемыми объектами, также необходимо позаботиться, поэтому, например, если ваш класс Item выглядит следующим образом
public class Item implements Serializable {
private String s;
private MyClass c;
..
, то вам также необходимо сделать MyClass Serializable,любые переменные экземпляра и т. д. и т. д.