怎样让xstream在生成xml时,显示null属性

怎样让xstream在生成xml时,显示null属性。如:
class Admin extends Person {
public String name;
public boolean online;
public Map mailMap = null;

public Admin(String name, boolean online, Map<String, String> mailMap) {
    this.name = name;
    this.online = online;
    this.mailMap = mailMap; 
}

public String toString() {
    return super.toString() + "Admin{" +
        "name=" + name +
        ",online=" + online +
        ",mailMap=" +
        mailMap.toString()      
        + "}";
}

}

Admin admin = new Admin("me", true, null);
XStream xs = new XStream();
System.out.println(xs.toXML(admin));

//运行结果
me
true

//其中没有mailMap属性,我想要下面的效果:
me
true

将new HashMap定义为全局的,每次都是用同一个区域就可以了。

[code="java"]Admin admin = new Admin("me", true, null); [/code]

吧null 修改为new HashMap() 看看

如果使用null,你的tostring方法就出错了
[code="java"]public String toString() {
return super.toString() + "Admin{" +
"name=" + name +
",online=" + online +
[color=red]",mailMap=" +
mailMap.toString() [/color]+ "}";
}
[/code]

XStream是序列化工具,可以让java to xml, xml to java。在序列化的时候,你可以null,但是你反序列化的过程中,XStream是无法从xml里面知道这个null到底是什么东西的?因为这个null可能是String, int, HashMap等等,所以你说的那个情况是没有办法做到的。。

不会有 的情况存在。

如果你觉得mailMap太多的话,你就写一个Const类,声明一个
[code="java"]static Map EMPTYMAP = new HashMap();[/code]

放入admin里面好了