Android 子类父类对象相互转换

问题描述:
开发的过程中有个场景,有个数据结构是上传数据时用到的UploadData,这个结构在其他模块也有用到,因此定义完后一般不会修改添加。

但是我本地UI是用一个recyclerview来展示数据,需要在原有的数据结构上加两个状态信息,因此,本地新建了一个数据结构DisplayData继承了UploadData,在原基础上加上了两个状态位参数。但是每次数据下载和上传需要两个对象互相转换下。

解决方法:使用了Gson

  • 下载的数据可以直接使用Gson转化为DisplayData类;
  • 数据上传的时候可以使用Gson转为String,再转UploadData类进行上传;

之前尝试了属性拷贝的方法,但是这个只适合较为简单的数据结构,具体方法如下:

   /**
     * 复制对象属性包含父类
     *
     * @param from
     * @param to
     * @throws Exception
     */
    @SuppressWarnings("unchecked")
    public static void copyPropertiesIncludeFather(Object from, Object to) throws Exception {
   
        Log.i("test", "--- copyPropertiesIncludeFather ---");
        Method[] fromMethods = getAllMethodsFromSonObject(from);
        Method[] toMethods = getAllMethodsFromSonObject(to);
        Method fromMethod = null, toMethod = null;
        String fromMethodName = null, toMethodName = null;
        for (int i = 0; i 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值