Я пытаюсь написать класс, который позволил бы мне просто написать .save (); сделать постоянные копии детских классов. Я создал метод, который создает XML:
public boolean save() throws IOException{
XStream xstream = new XStream(new KXml2Driver());
FileWriter extenceWriter = new FileWriter(saveFile);
xstream.alias(this.getClass().getSimpleName(), this.getClass());
xstream.toXML(this, extenceWriter);
return saveFile.exists();
}
и еще один, который должен прочитать это:
public Object loadFile(String path) throws FileNotFoundException{
File file = new File(appRootDIR + File.separator + path);
XStream xstream = new XStream(new KXml2Driver());
FileReader extenceReader = new FileReader(file);
return xstream.fromXML(extenceReader);
}
Проблема в том, что я получаю исключение com.thoughtworks.xstream.mapper.CannotResolveClassException при попытке использовать loadFile ().
Я проверил Google, и самым близким было то, что разные экземпляры xstream не могут общаться
Эту проблему можно решить, переместив xstream в поле класса, но затем я получаю некоторые ошибки, связанные с тем, что xstream не может сам сериализоваться.
Есть ли хороший способ реализации методов чтения и записи в классе без необходимости создания экземпляра xstream вне коробки?