Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么JAXB可以';t解析泛型类型?_Java_Xml_Jaxb_Xmlelement - Fatal编程技术网

Java 为什么JAXB可以';t解析泛型类型?

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,

我试图解组一些xml文件,但我对泛型类型有问题。如果我设置@XMLelement(name=“ZAP”)它不起作用,但是如果我设置@XmlAnyElement(lax=true),它就起作用了。我认为@XMLelement在这种情况下更适合使用,但我不知道为什么

''爪哇

@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;
}
}