私は単に.save()を書くことができるクラスを作成しようとしています。子クラスの永久コピーを作成する。問題は、私はときcom.thoughtworks.xstream.mapper.CannotResolveClassExceptionを得ることであるCannotResolveClassExceptionメソッド内でXMLファイルを読み取っています。
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);
}
:
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();
}
し、それを読む必要があり、別の1:私は、XMLを作成する方法を作成しました私はloadFile()を使用しようとします。
私はgoogleをチェックしました。最も近いヒットはxstreamの異なるインスタンスが通信できないということでした。
これは、xstreamをクラスフィールドに移動することで解決できますが、次にxstreamがそれ自体をシリアル化できないという問題に関していくつかのエラーが発生します。
ボックスの外部でxstreamインスタンスを作成することなく、クラスに読み込みと書き込みの両方のメソッドを実装する良い方法はありますか?
ありがとうございました! オプション1は素晴らしいです。 エイリアスの登録方法はまだ分かりませんでしたが、試してみます。 –