0
我想解組派生自一個公共基類的對象列表。 他們被定義爲:現在jaxb解組派生對象列表
public abstract class Par {
@XmlTransient
public String name;
@XmlAttribute(name="name")
public String getName() {
return name;
}
public void setName(String n) {
name = n;
}
}
@XmlRootElement(name="int")
public class IntegerPar extends Par {
@XmlTransient
public int value;
@XmlAttribute(name="value")
public int getValue() {
return value;
}
public void setValue(int v) {
value = v;
}
}
@XmlRootElement(name="string")
public class StringPar extends Par { ... }
,如果我創建一個列表,並將其編組爲XML,它工作正常生產整齊
<root>
<int name="x" value="1"/>
<string name="s" value="hello"/>
</root>
,但如果我想解組相同的XML這個類
@XmlRootElement(name="root")
public class ParamRequest {
@XmlAnyElement
public ArrayList<Par> params;
}
我得到以下(從日食調試拍攝)
myRequest.params [[int: null], [string: null]]
任何幫助? 謝謝。
編輯:解組由新澤西
@POST @Path("/params")
@Produces(MediaType.TEXT_PLAIN)
@Consumes(MediaType.APPLICATION_XML)
public String postParams(ParamRequest myRequest) {
myRequest...
...
}
這兩個屬性都是'transient' – Jens
不應該使用setXxx()方法嗎? 無論如何,我嘗試刪除XmlTransient部分,仍然無法正常工作。此外,編組停止工作,因爲現在有兩個同名的屬性。 – SirePi