单机游戏下载单机游戏下载基地
最新游戏|热门游戏|游戏大全|游戏专题
压缩解压光盘工具文字输入杀毒软件文件处理转换翻译股票证券办公学习编程软件虚拟光驱
当前位置:首页应用软件编程软件 → XStream v1.4.10中文api手册

XStream v1.4.10中文api手册

  • XStream v1.4.10中文api手册截图0
  • XStream v1.4.10中文api手册截图1
< >
XStream v1.4.10中文api手册下载
好玩 好玩 0
坑爹 坑爹 0
  • 应用语言:中文
  • 应用大小:3M
  • 更新时间:2017-09-04 08:38
  • 发行时间:
  • 应用类型:普通
  • 应用标签: XStream
XStreamv1.4.10中文api手册是帮助用户快速上手xstream的教程,详细介绍了xstream的使用方法,用示例讲解实际应用,需要的用户赶快来下载吧。XStream的特征使用方便。提供了一个高级立面,简化了常见用例。不需要映射大多数对象可以序列化,无需指定映射。[更多]
应用介绍

XStream v1.4.10中文api手册是帮助用户快速上手xstream的教程,详细介绍了xstream的使用方法,用示例讲解实际应用,需要的用户赶快来下载吧。

XStream的特征

使用方便。提供了一个高级立面,简化了常见用例。

不需要映射 大多数对象可以序列化,无需指定映射。

性能。速度和低内存占用是设计的关键部分,使其适用于大型对象图或具有较高消息吞吐量的系统。

清洁XML。没有重复的信息可以通过反射获得。这导致XML更容易为人类阅读,比本机Java序列化更紧凑。

不需要修改对象。序列化内部字段,包括私有和最终。支持非公共和内部类。类不需要具有默认构造函数。

全对象图支持。将保持在对象模型中遇到的重复引用。支持循环引用。

与其他XML API集成。通过实现一个接口,XStream可以直接从任何树结构序列化(而不仅仅是XML)。

可定制的转换策略。可以注册策略,允许自定义特定类型如何表示为XML。

安全框架。精细控制未组合类型,以防止操纵输入的安全问题。

错误消息 当由于格式不正确的XML发生异常时,将提供详细的诊断信息,以帮助隔离和解决问题。

替代输出格式。模块化设计允许其他输出格式。XStream目前拥有JSON支持和变形。

典型用途

运输

坚持

组态

单位测试

已知限制

如果使用增强模式,XStream可以重新实例化没有默认构造函数的类。但是,如果使用不同的JVM,像旧的JRockit版本,JDK 1.4或由于SecurityManager而受到限制,则需要使用默认构造函数。

还需要增强模式来恢复任何JDK <1.5的最终字段。这意味着内部类的实例的反序列化。

注释的自动检测可能会导致竞争条件。预处理注释是安全的。

XStream使用方法

一、XStream的用途

XStream是一个Java对象和XML相互转换的工具,很好很强大。提供了所有的基础类型、数组、集合等类型直接转换的支持。

因此XML常用于数据交换、对象序列化(这种序列化和Java对象的序列化技术有着本质的区别)。

Stream对象相当Java对象和XML之间的转换器,转换过程是双向的。创建XSteam对象的方式很简单,只需要new XStream()即可。

Java到xml,用toXML()方法。

Xml到Java,用fromXML()方法。

二、在没有任何设置默认情况下,java到xml的映射,是java成员名对应xml的元素名,java类的全名对应xml根元素的名字。而实际中,往往是xml和java类都有了,要完成相互转换,必须进行别名映射。

别名配置包含三种情况:

1、类别名,用alias(String name, Class type)。

2、类成员别名,用aliasField(String alias, Class definedIn, String fieldName)

3、类成员作为属性别名,用 aliasAttribute(Class definedIn, String attributeName, String alias),单独命名没有意义,还要通过

useAttributeFor(Class definedIn, String fieldName) 应用到某个类上。

别名的配置是非常重要的,但是其中有些细节问题很重要,在例子中会专门做详细说明。

另外还有不太常用的方法:

addImplicitCollection(Class ownerType, String fieldName),去掉集合类型生成xml的父节点。

registerConverter(Converter converter) ,注册一个转换器。

三、

如果这些基本的操作还不能满足你应用的需求,XStream提供丰富的扩展点。你可以实现自己的转换器。还可以利用XStream完成更负责的功能,比如输出其他非xml格式的数据,还可以输出html,还支持XML Dom类型数据,这些应用起来稍微复杂些。当然这些不是XStream应用的重点,也不用理会,真正需要的时候再查看API和源码研究研究。

XStream的优点很多,但是也有一些小bug,比如在定义别名中的下划线“_”转换为xml后会变成“__”这个符号,很变态。因此,尽量避免在别名中实用任何符号,却是需要下划线的时候,可以考虑实用连接符“-”,这个没有问题。

另外,我们的Java Bean中,常常有一些常量,在转换过程,XStream也会将这些常量转换过去,形成常量的xml节点,这显然不是想要的结果,对于常量字段,就不做转换了。

四、

简单例子:

package test;

import java.util.List;

public class Person {

private String name;

private String age;

private Profile profile;

private List

addlist;

public Person(String name, String age, Profile profile,

List

addlist) {

this.name = name;

this.age = age;

this.profile = profile;

this.addlist = addlist;

}

public Person(){

}

public String toString() {

return "Person{" + "name='" + name + '\'' + ", age='" + age + '\''

+ ", profile=" + profile + ", addlist=" + addlist + '}';

}

}

//=======================================================

package test;

public class Address {

private String add;

private String zipcode;

public Address(String add, String zipcode) {

this.add = add;

this.zipcode = zipcode;

}

public String toString() {

return "Address{" + "add='" + add + '\'' + ", zipcode='" + zipcode

+ '\'' + '}';

}

}

//======================================================

package test;

public class Profile {

private String job;

private String tel;

private String remark;

public Profile(String job, String tel, String remark) {

this.job = job;

this.tel = tel;

this.remark = remark;

}

public String toString() {

return "Profile{" + "job='" + job + '\'' + ", tel='" + tel + '\''

+ ", remark='" + remark + '\'' + '}';

}

}

//==========================================================

package test;

import java.util.ArrayList;

import java.util.List;

import com.thoughtworks.xstream.XStream;

public class XStreamTest {

public static void main(String args[]) {

test();

}

public static void test() {

System.out

.println("----------XStream学习:http://lavasoft.blog.51cto.com----------");

// 目标对象

Address address1 = new Address("郑州市经三路", "450001");

Address address2 = new Address("西安市雁塔路", "710002");

List

addList = new ArrayList

();

addList.add(address1);

addList.add(address2);

Profile profile = new Profile("软件工程师", "13512129933", "备注说明");

Person person = new Person("熔岩", "27", profile, addList);

// 转换装配

XStream xStream = new XStream();

output(0, xStream, person);

/************** 设置类别名 ****************/

xStream.alias("PERSON", test.Person.class);

xStream.alias("PROFILE", test.Profile.class);

xStream.alias("ADDRESS", test.Address.class);

output(1, xStream, person);

/************* 设置类成员的别名 ***************/

// 设置Person类的name成员别名Name

xStream.aliasField("Name", Person.class, "name");

/*

* [注意] 设置Person类的profile成员别名PROFILE,这个别名和Profile类的别名一致,

* 这样可以保持XStream对象可以从profile成员生成的xml片段直接转换为Profile成员,

* 如果成员profile的别名和Profile的别名不一致,则profile成员生成的xml片段不可

* 直接转换为Profile对象,需要重新创建XStream对象,这岂不给自己找麻烦?

*/

xStream.aliasField("PROFILE", test.Person.class, "profile");

xStream.aliasField("ADDLIST", test.Person.class, "addlist");

xStream.aliasField("Add", test.Address.class, "add");

xStream.aliasField("Job", test.Profile.class, "job");

output(2, xStream, person);

/******* 设置类成员为xml一个元素上的属性 *******/

xStream.useAttributeFor(Address.class, "zipcode");

output(3, xStream, person);

/************* 设置属性的别名 ***************/

xStream.aliasAttribute(Address.class, "zipcode", "Zipcode");

output(4, xStream, person);

/************* 将xml转为java对象 ******× ****/

String person_xml = "\n" + " 熔岩\n"

+ " 27\n" + " \n"

+ " 软件工程师\n" + " 13512129933\n"

+ " 备注说明\n" + " \n"

+ " \n" + "

\n"

+ " 郑州市经三路\n" + "

\n"

+ "

\n"

+ " 西安市雁塔路\n" + "

\n"

+ " \n" + "";

String profile_xml = " \n" + " 软件工程师\n"

+ " 13512129933\n"

+ " 备注说明\n" + " ";

String address_xml = "

\n"

+ " 西安市雁塔路\n" + "

";

// 同样实用上面的XStream对象xStream

System.out.println(xStream.fromXML(person_xml).toString());

System.out.println(xStream.fromXML(profile_xml).toString());

System.out.println(xStream.fromXML(address_xml).toString());

}

public static void output(int i, XStream xStream, Object obj) {

String xml = xStream.toXML(obj);

System.out.println(">>>第[ " + i + "]次输出\n");

System.out.println(xml + "\n");

}

}

 

相关应用
下载地址

XStream v1.4.10中文api手册

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    (您的评论需要经过审核才能显示)

    配置需求

    推荐专题

    up对战平台up对战平台

    关于飞翔 | 联系我们 | 大事记 | 下载帮助(?) | 广告联系 | 版权声明 | 网站地图 | 友情链接

    Copyright 2010-2013 单机游戏下载 (R) 版权所有 飞翔下载所有游戏及软件下载资源来源互联网,并由网友上传分享。如有侵权,请来电来函告之。
    飞翔忠告:抵制不良色情、反动、暴力游戏 合理安排游戏时间 享受健康生活【鄂ICP备13011873号-1】