java编程积累

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

2020-06-10  本文已影响0人  风一样的存在

对于一些相同的属性,把经常变化的部分经常封装成一个泛型类,类的结构也很清晰。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>

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

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

上一篇 下一篇

猜你喜欢

热点阅读