Java 为什么JAXB可以';t解析泛型类型?
我试图解组一些xml文件,但我对泛型类型有问题。如果我设置@XMLelement(name=“ZAP”)它不起作用,但是如果我设置@XmlAnyElement(lax=true),它就起作用了。我认为@XMLelement在这种情况下更适合使用,但我不知道为什么 ''爪哇Java 为什么JAXB可以';t解析泛型类型?,java,xml,jaxb,xmlelement,Java,Xml,Jaxb,Xmlelement,我试图解组一些xml文件,但我对泛型类型有问题。如果我设置@XMLelement(name=“ZAP”)它不起作用,但是如果我设置@XmlAnyElement(lax=true),它就起作用了。我认为@XMLelement在这种情况下更适合使用,但我不知道为什么 ''爪哇 @XmlRootElement(name=“ZL_LIST”) @XmlAccessorType(XmlAccessType.FIELD) @XMLSEEAL({RegistryRecordXmlModelV2.class,
@XmlRootElement(name=“ZL_LIST”)
@XmlAccessorType(XmlAccessType.FIELD)
@XMLSEEAL({RegistryRecordXmlModelV2.class,
RegistryRecordXmlModelV30.class,RegistryRecordXmlModelV31.class})
公共类注册XmlModel{
@xmlement(name=“ZAP”)
私人名单记录;
@XmlTransient
私人课堂录音;
@XmlTransient
私有字符串模式;
公共注册表xmlmodel(){
}
公共注册表XmlModel(类recordClazz){
this.recordClazz=recordClazz;
}
公共注册表XMLModel(类recordClazz,字符串模式){
this.recordClazz=recordClazz;
this.schema=schema;
}
公共列表记录(){
退货记录;
}
公共记录(列表记录){
这个.记录=记录;
}
公共类getRecordClazz(){
返回记录clazz;
}
公共字符串getSchema(){
返回模式;
}
}
@XmlRootElement(name=“ZAP”)
@XmlAccessorType(XmlAccessType.FIELD)
公共类注册表RecordXmlModelV31扩展
RegistryRecordXmlAbstractModel{
@xmlement(name=“Z_SL”)
私有注册casemmlmodelv31 caseInfo;
公共注册表RecordXmlModelV31(){
//默认构造函数
}
@凌驾
公共注册表casemmlmodelv31 getCaseInfo(){
返回案例信息;
}
public void setCaseInfo(RegistryCaseXmlModelV31 caseInfo){
this.caseInfo=caseInfo;
}
}
共享xml文件共享xml文件
@XmlRootElement(name = "ZL_LIST")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlSeeAlso({ RegistryRecordXmlModelV2.class,
RegistryRecordXmlModelV30.class, RegistryRecordXmlModelV31.class })
public class RegistryXmlModel <T extends RegistryRecordXmlModel> {
@XmlElement(name = "ZAP")
private List<T> records;
@XmlTransient
private Class<T> recordClazz;
@XmlTransient
private String schema;
public RegistryXmlModel() {
}
public RegistryXmlModel(Class<T> recordClazz) {
this.recordClazz = recordClazz;
}
public RegistryXmlModel(Class<T> recordClazz, String schema) {
this.recordClazz = recordClazz;
this.schema = schema;
}
public List<T> getRecords() {
return records;
}
public void setRecords(List<T> records) {
this.records = records;
}
public Class<T> getRecordClazz() {
return recordClazz;
}
public String getSchema() {
return schema;
}
}
@XmlRootElement(name = "ZAP")
@XmlAccessorType(XmlAccessType.FIELD)
public class RegistryRecordXmlModelV31 extends
RegistryRecordXmlAbstractModel<RegistryCaseXmlModelV31> {
@XmlElement(name = "Z_SL")
private RegistryCaseXmlModelV31 caseInfo;
public RegistryRecordXmlModelV31() {
//default constructor
}
@Override
public RegistryCaseXmlModelV31 getCaseInfo() {
return caseInfo;
}
public void setCaseInfo(RegistryCaseXmlModelV31 caseInfo) {
this.caseInfo = caseInfo;
}
}