В настоящее время я сталкиваюсь со следующей проблемой: у меня есть абстрактный класс A, расширенный многими подклассами B1, B2, ..., Bn.Некоторые экземпляры этих подклассов хранятся в коллекции, представьте себе что-то вроде:
Vector<A> container = new Vector<>();
container.add(new B1());
container.add(new B2());
container.add(new B3());
Все атрибуты этих классов имеют стандартные типы, такие как double, int и String (без экзотических типов).Суперкласс имеет несколько атрибутов, плюс каждый подкласс имеет свои собственные атрибуты.Мне нужно сериализовать эту коллекцию в файл XML.Однако при использовании чего-то вроде:
public static void serializeObjectToXMLFile (Object obj, String path) throws IOException
{
FileOutputStream fos = new FileOutputStream(path);
XMLEncoder encoder = new XMLEncoder(fos);
encoder.setExceptionListener(new ExceptionListener() {
public void exceptionThrown(Exception e) {
e.printStackTrace();
System.exit(1);
}
});
encoder.writeObject(obj);
encoder.close();
fos.close();
}
только атрибуты суперкласса сериализуются (те из подклассов не сериализуются, и мне нужно, чтобы они были в файле XML).
Есть идеи?
Большое спасибо за помощь!