簡體   English   中英

使用XMLEncoder時java.lang.Instantiation異常

[英]java.lang.Instantiation exception while using XMLEncoder

我試圖在我的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。 這兩個類都實現了Serializable。 ClassA具有ClassB的ArrayList。 該類的所有字段都具有getter和setter方法。 確切的錯誤(堆棧跟蹤)為;

 java.lang.InstantiationException: classA continuing...

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

我無法弄清楚出了什么問題或這些錯誤是什么意思。 我應該如何糾正我的代碼以使其正常工作?

謝謝。

XMLEncoder需要JavaBeans對象對其進行序列化,因此您必須在ClassA和ClassB中定義一個公共的默認構造函數(不帶參數)。

JavaBeans約定在這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM