XStream集合对象使用
XStream是一个Java对象和XML相互转换的工具,提供了所有的基础类型、数组、集合等类型直接转换的支持.XStream对象相当Java对象和XML之间的转换器,转换过程是双向.使用XStream 不用任何映射就能实现多数 Java 对象的序列化。在生成的 XML 中对象名变成了元素名,类中的字符串组成了 XML 中的元素内容。使用 XStream 序列化的类不需要实现 Serializable 接口。XStream 是一种序列化工具而不是数据绑定工具,就是说不能从 XML 或者 XML Schema Definition (XSD) 文件生成类。
和其他序列化工具相比,XStream 有三个突出的特点:
XStream 不关心序列化/逆序列化的类的字段的可见性。
序列化/逆序列化类的字段不需要 getter 和 setter 方法。
序列化/逆序列化的类不需要有默认构造函数。
不需要修改类,使用 XStream 就能直接序列化/逆序列化任何第三方类?
?
Address.java
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.util.Iterator;import java.util.List;import com.thoughtworks.xstream.XStream;import com.thoughtworks.xstream.io.xml.DomDriver;public class XML2List {public static void main(String args[]){XStream xs=new XStream(new DomDriver());File file=new File("d:/temp/List2XML.xml");try {FileInputStream fis=new FileInputStream(file);xs.alias("person", Person.class);xs.alias("address", Address.class);xs.aliasAttribute(Person.class,"addList", "addressList");xs.aliasAttribute(Address.class, "id", "addressId");xs.aliasAttribute(Address.class, "zipcode", "ZipCode"); //前后顺序无关xs.useAttributeFor(Address.class, "zipcode");Person person=(Person) xs.fromXML(fis);System.out.println("name="+person.getName());List list=person.getAddList();Iterator iter=list.iterator();Address add;System.out.println("地址信息:");while(iter.hasNext()){add=(Address) iter.next();System.out.println(add.getAdd());System.out.println(add.getZipcode());}} catch (FileNotFoundException e) {e.printStackTrace();}}}?结果:
name=spark
地址信息:
经三路
450000
朝阳区
10000
更多内容请访问:http://www.cnblogs.com/hoojo/archive/2011/04/22/2025197.html