Java 如何直接调用jaxbxmladapter
当我试图直接解组一个根对象,而不是另一个对象中的字段,从而绕过@XmlJavaTypeAdapter时,我与jaxb的XMLAdapters的限制相冲突 我不希望包装我的对象,因为这将更改将在数据库中序列化的xml。听起来可以直接调用XMLAdapter,其他地方的答案如下: [1] [2] [3] 但我不知道你会怎么做:( 我猜会是这样的Java 如何直接调用jaxbxmladapter,java,inheritance,jaxb,unmarshalling,Java,Inheritance,Jaxb,Unmarshalling,当我试图直接解组一个根对象,而不是另一个对象中的字段,从而绕过@XmlJavaTypeAdapter时,我与jaxb的XMLAdapters的限制相冲突 我不希望包装我的对象,因为这将更改将在数据库中序列化的xml。听起来可以直接调用XMLAdapter,其他地方的答案如下: [1] [2] [3] 但我不知道你会怎么做:( 我猜会是这样的 AdaptedFoo adaptedFoo = (new MyAdapter()).unmarshall(fooXml) 但这不是XMLAdapter解
AdaptedFoo adaptedFoo = (new MyAdapter()).unmarshall(fooXml)
但这不是XMLAdapter解组方法的接口。在我的例子中,xml需要先转换为AdaptedFoo对象,然后才能解组
eg. public BackgroundJob unmarshal(AdaptedFoo adaptedFoo)
我是否需要额外的解组步骤将myXml转换为AdaptedFoo对象,然后调用my XMLAdapter将其转换为所需的子类?还是有更优雅的方法
推荐的过程是什么?对于根对象,您需要执行以下操作:
XmlAdapter<AdaptedFoo, Foo> xmlAdapter = new FooAdapter();
AdaptedFoo adaptedFoo = (AdaptedFoo) unmarshaller.unmarshal(xml);
Foo foo = xmlAdapter.unmarshal(adaptedFoo);
XmlAdapter XmlAdapter=newfooadapter();
AdaptedFoo AdaptedFoo=(AdaptedFoo)unmarshaller.unmarshal(xml);
Foo-Foo=xmlAdapter.unmarshal(adaptedFoo);
非常感谢,现在我知道答案了,这看起来很简单。