Java JAXB:如何判断一个类是否在没有注释的情况下是可封送的
我们有一个类,无法控制源代码,因此无法为JAXB注释它。我们还有一个处理编组的框架。这个框架有没有办法在不存在注释的情况下询问该类是否可封送?没有标准机制,但我似乎有人通过尝试在该类上创建JAXBContext来实现这一点:Java JAXB:如何判断一个类是否在没有注释的情况下是可封送的,java,annotations,jaxb,marshalling,Java,Annotations,Jaxb,Marshalling,我们有一个类,无法控制源代码,因此无法为JAXB注释它。我们还有一个处理编组的框架。这个框架有没有办法在不存在注释的情况下询问该类是否可封送?没有标准机制,但我似乎有人通过尝试在该类上创建JAXBContext来实现这一点: public boolean isValidJAXBClass(Class aClass) { try { JAXBContext.newInstance(aClass); } catch(JAXBException e) {
public boolean isValidJAXBClass(Class aClass) {
try {
JAXBContext.newInstance(aClass);
} catch(JAXBException e) {
return false;
}
return true;
}
封送JAXB对象不需要任何注释。你可以不必担心
通过将@XmlRootElement包装在JAXBElement中来获得它
如果您想要一种表示元数据的替代方法,可以使用一个基于JAXB元数据的外部化绑定文件
示例文件如下所示:
<xml-bindings xmlns="http://www.eclipse.org/eclipselink/xsds/persistence/oxm">
<java-types>
<java-type name="org.example.order.PurchaseOrder">
<java-attributes>
<xml-attribute java-attribute="id"/>
<xml-element java-attribute="customer">
<xml-java-type-adapter value="org.example.order.CustomerAdapter"/>
</xml-element>
<xml-element java-attribute="lineItems" name="line-item"/>
</java-attributes>
</java-type>
</java-types>
</xml-bindings>
有关更多信息,请参阅: