Java中的jaxb 包中组装xml的组装泛型为什么不成功,代码如下,求大神解答(没有C币了T-T)

这是要组装的类,都把他放到一个java文件里去了

 class Base{}

@XmlTransient 
class A extends Base{
    private String str;

    @XmlElement
    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }


}
@XmlAccessorType(XmlAccessType.PROPERTY) 
@XmlRootElement(name = "root")
class root<T extends Base>{
    private String str;
    private T t;

    @XmlElement(name = "request")
    public T getT() {
        return t;
    }
    public void setT(T t) {
        this.t = t;
    }

    @XmlElement
    public String getStr() {
        return str;
    }

    public void setStr(String str) {
        this.str = str;
    }

}


测试:

 @Test
    public void test4(){
        A a = new A();
        a.setStr("aaaaa");
        root rc = new root();
        rc.setT(a);
        rc.setStr("aaaaaa");


         JAXBContext context;  
            try {  
                context = JAXBContext.newInstance(root.class);  
                Marshaller mar = context.createMarshaller();  
                mar.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);  
                mar.setProperty(Marshaller.JAXB_ENCODING, "UTF-8");  

                StringWriter writer = new StringWriter();  

                mar.marshal(rc, writer);  

                System.out.println(writer.toString());  
            } catch (JAXBException e) {  
                e.printStackTrace();  
            }  
    }

结果为什么request标签是空的

 <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<root>
    <str>aaaaaa</str>
    <request/>
</root>

因为你的T不是XmlElement

因为你的T不是XmlElement