私はこれをコーディングした瞬間までに、ゲームから情報を保存およびロードするための小さなクラスを行っています:
import java.io.FileReader;
import java.io.FileWriter;
import org.exolab.castor.xml.MarshalException;
import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.Unmarshaller;
import org.exolab.castor.xml.ValidationException;
class InformationToStoreLoad{
public InformationToStoreLoad(){
}
}
public class GameSaverLoader {
/*
* Save the current game
*/
public void saveXML(){
FileWriter writer;
try {
writer = new FileWriter("save.xml");
Marshaller.marshal(new InformationToStoreLoad(), writer);
writer.close();
} catch (IOException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
}
/*
* Load a game saved before
*/
public void loadXML()
{
try {
FileReader reader = new FileReader("article.xml");
InformationToStoreLoad gameToLoad =
(InformationToStoreLoad) Unmarshaller.unmarshal(InformationToStoreLoad.class, reader);
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
私は .NET プラットフォームに取り組んできましたが、Java には少し慣れていないので、すべてを正しく行ったかどうかはわかりません。Castor ライブラリをエクスポートするには、プロジェクトを右クリックし、[プロパティ]、[Java ビルド パス]、[ライブラリ] の順に選択し、最後に [外部 JAR の追加] をクリックして、この JAR をエクスポートしました: 「castor-1.3.1- xml.jar"
ただし、マーシャラーおよびアンマーシャラークラスの使用中に次のエラーが発生します
Unhandled exception type ValidationException
クイックフィックスで「周囲の try に catch 句を追加する」を選択すると、代わりに次のエラーが発生します。
No exception of type MarshalException can be thrown; an exception type must be a subclass of Throwable
The method printStackTrace() is undefined for the type MarshalException
No exception of type ValidationException can be thrown; an exception type must be a subclass of Throwable
The method printStackTrace() is undefined for the type ValidationException
また、クイックフィックスでは、これを行うオプションがあります:
public void saveXML() throws MarshalException, ValidationException{
次に、次のエラーが表示されます。
MarshalException 型の例外はスローできません。例外タイプは、Throwable のサブクラスでなければなりません
タイプ ValidationException の例外はスローできません。例外タイプは、Throwable のサブクラスでなければなりません
これらのエラーを修正する方法がわかりません。この問題を解決する方法を教えてもらえますか?
よろしくお願いします