如果我的类(A)包含多个相同类型的属性(接口B)。
我已经使用http://jaxb.java.net/guide/Mapping_interfaces.html中的建议来使用@XmlRootElement和@XmlAnyElement的组合来解决界面问题:
public interface B {...}
public class A {
...
@XmlAnyElement
public B getFirstB(){...}
@XmlAnyElement
public B getSecondB(){...}
}
// some concrete implementations of B
@XmlRootElement
public class BImpl implements B {...}
@XmlRootElement
public class AnotherBImpl implements B {...}
我得到以下内容:
<a>
<bImpl/>
<anotherBImpl/>
</a>
但我想区分属性。我怎么得到:
<a>
<firstB>
<bImpl/>
</firstB>
<secondB>
<anotherBImpl/>
</secondB>
</a>
由于属性不是集合,我不能使用@XmlElementWrapper。
如果可以避免,我真的不想更改代码。
任何想法都赞赏。在JAXB中编组似乎非常棘手。