类javax.security.auth.x500.X500Principal是最终的,并且(当然)没有用JAXB注释进行注释?那么,我如何将其作为更大对象图的一部分进行编组呢?我想用它的name属性的值来代替它。
编辑
解决方案很简单:
final class X500PrincipalXmlAdapter
extends XmlAdapter<String, X500Principal> {
@Override public X500Principal unmarshal(String name) {
return new X500Principal(name);
}
@Override public String marshal(X500Principal principal) {
return principal.getName();
}
}实际上,我想知道为什么JAXB允许我使用一个非公共的XMLAdapter类,但我当然更喜欢这样。
发布于 2013-02-25 13:26:02
对于这个用例,您可以使用XmlAdapter。XmlAdapter用于将不可映射的对象转换为可映射的对象。XmlAdapter是使用@XmlJavaTypeAdapter注释在字段/属性上配置的。
https://stackoverflow.com/questions/15067518
复制相似问题