單機遊戲下載單機遊戲下載基地
最新遊戲|熱門遊戲|遊戲大全|遊戲專題
壓縮解壓光盤工具文字輸入殺毒軟件文件處理轉換翻譯股票證券辦公學習編程軟件虛擬光驅
當前位置:首頁應用軟件編程軟件 → 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】