code: public static void copyProperties(final Object source, final Object target) {
  
          ExceptionUtils.iae.throwIfNull(source, SOURCE_IS_NULL_MESSAGE);
          ExceptionUtils.iae.throwIfNull(target, TARGETIS_NULL_MESSAGE);
          Class<Object> sourceClass = ClassUtils.getClass(source);
          Class<Object> targetClass = ClassUtils.getClass(target);
          Field[] sourceFields = sourceClass.getDeclaredFields();
          Field[] targetFields = targetClass.getDeclaredFields();
          try {
              for (Field sourceField : sourceFields) {
                  Field targetField = getFieldByField(targetFields, sourceField);
                  if (targetField != null) {
                      getAndSetValue(source, sourceField, target, targetField);
                  }
              }
          } catch (Exception e) {
              throw new FatalBeanException(CAN_NOT_COPY_PROPERTIES, e);
          }
      }
docs: 把相同名称和类型的字段从源对象中复制到目标对象中去(目标对象中final字段除外)。 Copy same name and type field
  value from source to target(except target final field).
  
  @param source
  源对象。source object.
  @param target
  目标对象。target object.