У меня есть класс вроде:
public class Barn {
String type;
Animal animal;
}
public class Horse extends Animal {
}
public class Cow extends Animal {
}
и я хочу сериализовать их список:
List<Barn> barns = new ArrayList<Barn>();
Barn barn1 = new Barn();
barn1.setType("horse");
barn1.setAnimal(new Horse());
barns.add(barn1);
Barn barn2 = new Barn();
barn2.setType("cow");
barn2.setAnimal(new Cow());
barns.add(barn2);
...
Group<Barn> barns = gson.fromJson(serialized);
Когда я сериализую, информация типа будет потеряна для атрибута Animal. Есть ли способ, по которому я мог бы установить прослушиватель парсера, чтобы я мог предоставить правильный класс для десериализации, как когда каждый элемент в списке встречается? Это была идея ручной подачи строки, описывающей тип класса.
Спасибо