java采坑之路-XStream不支持泛型

对于一些相同的属性,把经常变化的部分经常封装成一个泛型类,类的结构也很清晰。XStream是业界流行的xml与对象的转换工具,比java自带的xml转换效率和资源都节省很多。最近在使用却遇到一个问题,泛型部分使用的@XStreamAlias死活不生效。
代码部分:

@XStreamAlias(value = "ebank")
@Data
public class BaseReq<T> implements Serializable {
    private static final long serialVersionUID = 7050051411196096588L;

    @XStreamAlias(value = "reqHead")
    private ReqHead head;

    @XStreamAlias(value = "reqBody")
    private T body;
}
@Data
@XStreamAlias("reqBody")
public class AccountTransDetailReq {
    /**帐号*/
    private String accountNo;

    /**币种*/
    private String currencyType = Constant.UNITED_CURRENCY_TYPE;

    /**起始日期*/
    private String beginDate;

    /**终止日期*/
    private String endDate;

    /**页码数*/
    private Integer page;

    /**每页条数*/
    @XStreamAlias("showNum")
    private Integer pageSize;
}

转化后的xml:

<?xml version="1.0" encoding="GBK"?>
<ebank>
  <reqHead>
    <custNo>1000464826</custNo>
    <userId>000000</userId>
    <tranCode>200002</tranCode>
    <serialNo>20200525172229216002</serialNo>
    <reqDate>20200525</reqDate>
    <reqTime>172229216</reqTime>
  </reqHead>
  <reqBody>
    <accountNo>201000153961687</accountNo>
    <currencyType>CNY</currencyType>
    <beginDate>20191010</beginDate>
    <endDate>20191010</endDate>
    <page>1</page>
    <pageSize>10</pageSize>
  </reqBody>
</ebank>

可以看到泛型部分没有达到预期

解决办法:
只能通过继承变相处理这个情形

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容