使用XMLEncoder时发生java.lang.Instantiation异常

使用XMLEncoder时发生java.lang.Instantiation异常,java,exception,instantiationexception,xmlencoder,Java,Exception,Instantiationexception,Xmlencoder,我试图在Java程序中使用XMLEncoder,但得到了一个Java.lang.InstanceionException。以下是我正在使用的代码: /* Method for serialization. */ public void serializeToXml(Object obj) throws FileNotFoundException{ FileOutputStream fos = new FileOutputStream("/home

我试图在Java程序中使用XMLEncoder,但得到了一个Java.lang.InstanceionException。以下是我正在使用的代码:

   /*
       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();
        }

}
除此之外,我还有两个班:A班和B班。 这两个类都实现了可序列化。ClassA有一个ClassB的数组列表。这两个类的所有字段都有getter和setter方法。精确误差(堆栈跟踪)为

我不知道哪里出了问题,或者这些错误意味着什么。我应该如何修改代码以使其正常工作


谢谢。

XMLEncoder需要JavaBeans对象来序列化它,所以您必须在ClassA和ClassB中定义一个公共默认构造函数(没有参数)


JavaBeans约定是。

您的答案很好,谢谢,但现在我还有一个问题,如何在xml中为元素指定特定名称,现在我在xml中使用的是非常长的格式。我现在得到的是:4,它很长,让人困惑read@user3686864听起来你需要看一个类似的库,而不是使用XMLEncoder。不幸的是,XMLEncoder没有提供你想要的功能。
 java.lang.InstantiationException: classA continuing...

 java.lang.exception :XMLEncoder:discarding statement XMLEncoder.writeObject(classA);
 continuing.