我面臨一個問題,反序列化已成功序列化與Simple XML Serialization框架(simpleframework.org)的XML文件。異常與簡單的XML框架反序列化
還有就是an exception拋出:
org.simpleframework.xml.core.PersistenceException: Constructor not matched for class projet.sarelo.Note
這是呼叫:
Serializer serializer = new Persister();
File xmlFile = new File(path);
ContactList contactList = serializer.read(ContactList.class, xmlFile); <== Error
我ContactList.java
@Root(strict=false, name="ContacList")
public class ContactList {
@ElementArray (name = "Contacts")
Contact [] contact;
}
我Note.java
public class Note {
@Element(required=false)
private String note;
public Note(String note) {
super();
this.note = note;
}
public String getNote() {
return note;
}
}
我Contact.java
@Root
public class Contact {
@Attribute(name = "id")
public String id;
@Element(name="Nom", required=false)
String name;
@ElementArray(name="Phones", required=false)
Phone [] phone;
@ElementArray(name = "Emails", required=false)
Email [] email;
@ElementArray(name = "Adresses", required=false)
Adresses [] adresses;
@ElementArray(name = "Notes", required=false)
Note [] note;
public Contact(String id, String name) {
super();
this.id = id;
this.name = name;
}
public String getName() {
return name;
}
public String getId(){
return id;
}
}
這是我嘗試反序列化的XML文件。
<ContactList>
<Contacts length="5">
<contact id="1">
<Adresses length="0"/>
<Emails length="0"/>
<Notes length="1">
<note>
<note>dgfdg</note>
</note>
</Notes>
</contact>
<contact id="2">
<Adresses length="1">
<adresses>
<city>Paris </city>
<postcode>751234 </postcode>
<state>France</state>
<street>Pignon</street>
</adresses>
</Adresses>
<Emails length="1">
<email type="home">
<home>[email protected]</home>
</email>
</Emails>
<Nom>Nicolas Sarkozy </Nom>
<Notes length="1">
<note>
<note>Je suis le president de toute la france. Le grand president</note>
</note>
</Notes>
<Phones length="2">
<phone>
<home>+33 1234</home>
</phone>
<phone>
<mobile>+33 0612</mobile>
</phone>
</Phones>
</contact>
...
</Contacts>
</ContactList>
僅供參考,非常類似的問題[這裏](http://stackoverflow.com/q/5894320/642706)和[這裏](http://stackoverflow.com/q/16135304/642706) –