Java プログラムで XMLEncoder を使用しようとしていますが、java.lang.InstantiationException が発生します。以下は、私が使用している私のコードです:
/*
Method for serialization.
*/
public void serializeToXml(Object obj) throws FileNotFoundException{
FileOutputStream fos = new FileOutputStream("/home/neeraj/xmlOP.xml");
XMLEncoder encoder = new XMLEncoder(fos);
encoder.writeObject(obj);
encoder.close();
}
public static void main(String [] args){
String uuid = UUID.randomUUID().toString();
SimpleDateFormat format = new SimpleDateFormat("dd/mm/yyyy");
Date date = new Date();
String tDate = format.format(date);
ClassA a = new ClassA(uuid,"expense","Pune",tDate,1,200,0,4);
a.createAssociatedEvents(2);
serializationExample serializer = new serializationExample();
try {
serializer.serializeToXml(a);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
これとは別に、classA と classB の 2 つのクラスがあります。どちらのクラスも Serializable を実装しています。ClassA には ClassB の ArrayList があります。両方のクラスのすべてのフィールドには、getter メソッドと setter メソッドがあります。正確なエラー (スタック トレース) は次のとおりです。
java.lang.InstantiationException: classA continuing...
java.lang.exception :XMLEncoder:discarding statement XMLEncoder.writeObject(classA);
continuing.
何が問題なのか、これらのエラーが何を意味するのかを理解できません。コードを修正して機能させるにはどうすればよいですか?
ありがとう。