美文网首页java编程积累
java采坑之路-XStream不支持泛型

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

作者: 风一样的存在 | 来源:发表于2020-06-10 18: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>
    

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

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

    相关文章

      网友评论

        本文标题:java采坑之路-XStream不支持泛型

        本文链接:https://www.haomeiwen.com/subject/xhtuahtx.html