zoukankan      html  css  js  c++  java
  • 工具类

    将一个对象的成员变量值赋值给另一个对象的相同成员变量
     1 /**
     2      * 将源表的属性赋值到目标表中,目标表中的字段必须在源表中存在
     3      * 
     4      * @param des
     5      *            目标表
     6      * @param src
     7      *            源表
     8      */
     9     public static void copyPropertys(Object des, Object src) {
    10         Class<?> srcClass = src.getClass();//返回实体类
    11         Field[] desFields = des.getClass().getDeclaredFields();//返回此类的所有字段组成的字段数组
    12         Field f;
    13         //循环
    14         for (Field field : desFields) {
    15             if (field.getName().equals("serialVersionUID")) {//序列化id
    16                 continue;
    17             }
    18             try {
    19                 //将源对象的超类中的成员变量中的值set进对应的目标对象
    20                 try {
    21                     f = srcClass.getSuperclass().getDeclaredField(//得到父类的所有字段组成的字段数组
    22                             field.getName());
    23                     f.setAccessible(true);//取消java语言访问检查(在反射的时候如果类的成员变量为private的时候必须设置)
    24                     field.setAccessible(true);
    25                     Object obj;
    26                     obj = f.get(src);//得到源对象成员变量f的值
    27                     if (obj != null) {
    28                         field.set(des, obj);//向目标对象des的field字段set值obj
    29                     }
    30                 } catch (NoSuchFieldException e) {
    31                 }
    32                 //将源对象中的成员变量值set进目标对象
    33                 try {
    34                     f = srcClass.getDeclaredField(field.getName());
    35                     f.setAccessible(true);
    36                     field.setAccessible(true);
    37                     Object obj;
    38                     obj = f.get(src);
    39                     if (obj != null) {
    40                         field.set(des, obj);
    41                     }
    42                 } catch (NoSuchFieldException e) {
    43                 }
    44             } catch (IllegalArgumentException e) {
    45                 e.printStackTrace();
    46             } catch (IllegalAccessException e) {
    47                 e.printStackTrace();
    48             } catch (SecurityException e) {
    49                 e.printStackTrace();
    50             }
    51 
    52         }
    53     }
  • 相关阅读:
    Docker----mysql数据持久化
    Docker-----容器数据卷
    Docker-----制造自己的镜像
    Docker----常用命令(镜像和容器的常用命令)
    Docker----阿里云镜像加速
    Docker概述
    com.aliyuncs.exceptions.ClientException: InvalidVersion : Specified parameter Version is not valid.
    夜神模拟器的使用踩坑--adb devices无法连接设备
    python利用smtplib模块发送邮件
    appium环境安装说明
  • 原文地址:https://www.cnblogs.com/javahuang/p/2948237.html
Copyright © 2011-2022 走看看