1

该类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 类,但我当然更喜欢这种方式。

4

1 回答 1

1

您可以将 anXmlAdapter用于此用例。XmlAdapter用于将不可映射的对象转换为可映射的对象。使用注释XmlAdapter在字段/属性上配置。@XmlJavaTypeAdapter

于 2013-02-25T13:26:02.733 回答