我试图在我的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。这两个类都实现了可序列化。ClassA有一个ArrayList of ClassB。这两个类的所有字段都有getter和setter方法。准确的误差(堆栈跟踪)是;
java.lang.InstantiationException: classA continuing...
java.lang.exception :XMLEncoder:discarding statement XMLEncoder.writeObject(classA);
continuing.我无法弄清楚出了什么问题,或者这些错误意味着什么。我应该如何纠正我的代码来使事情正常工作呢?
谢谢。
发布于 2014-07-13 17:58:46
XMLEncoder需要JavaBeans对象来序列化它,所以您必须在ClassA和ClassB中定义一个公共默认构造函数(没有参数)。
JavaBeans会议是这里。
https://stackoverflow.com/questions/24725368
复制相似问题