Mam klasy takich jak:Jak radzić sobie z deserializacją z polimorfizmem?
public class Barn {
String type;
Animal animal;
}
public class Horse extends Animal {
}
public class Cow extends Animal {
}
i chcę serializacji ich listę:
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);
Kiedy serializacji, informacja o typie zostaną utracone dla atrybutu Zwierząt. Czy istnieje sposób, w jaki mógłbym zainstalować odbiornik analizatora składni, aby zapewnić odpowiednią klasę do deserializacji, tak jak w przypadku napotkania każdego elementu na liście? Taki był pomysł ręcznego dostarczania łańcucha opisującego typ klasy.
Dzięki
Mogło to działać, jeśli kod podtypów (konia , krowa) są w różnych projektach Maven niż Barn? Mam cykliczną zależność z deserializacją Jacksona i próbuję znaleźć rozwiązanie – cyberjoac